注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书暂缺分类Angular高级编程(第4版)

Angular高级编程(第4版)

Angular高级编程(第4版)

定 价:¥158.00

作 者: [英] 亚当·弗里曼(Adam Freeman) 著,陈磊 译
出版社: 清华大学出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787302569572 出版时间: 2021-01-01 包装: 平装
开本: 16开 页数: 673 字数:  

内容简介

  主要内容● 从架构的角度理解MVC模式● 使用Angular创建丰富、动态的Web应用程序客户端● 使用ng工具构建Angular项目● 扩展和自定义Angular● 如何对Angular项目进行单元测试

作者简介

  Adam Freeman是一位经验丰富的IT专业人士,在多家公司担任过高级职位,还曾担任一家全球银行的首席技术官和首席运营官。退休之后,他热衷于写作和长跑。

图书目录

第Ⅰ部分  Angular基础知识
第1章  准备工作   3
1.1  需要了解什么   3
1.2  本书结构   3
1.2.1  第Ⅰ部分:Angular基础知识   3
1.2.2  第Ⅱ部分:Angular详解   4
1.2.3  第Ⅲ部分:Angular高级功能   4
1.3  本书不介绍什么   4
1.4  Angular开发需要什么软件   4
1.5  如何设置开发环境   4
1.6  学习示例时遇到问题怎么办   4
1.7  如果在书中发现错误怎么办   5
1.8  大量示例   5
1.9  获取示例代码   6
1.10  联系作者   6
1.11  如果你真的很喜欢这本书   7
1.12  如果你不喜欢这本书   7
1.13  本章小结   7
第2章  个Angular应用程序   9
2.1  准备开发环境   9
2.1.1  安装Node.js   9
2.1.2  安装angular-cli包   10
2.1.3  安装编辑器   11
2.1.4  安装浏览器   11
2.2  创建并准备项目   11
2.2.1  创建项目   11
2.2.2  启动开发工具   12
2.3  向项目中添加Angular功能   13
2.3.1  创建数据模型   14
2.3.2  向用户显示数据   16
2.3.3  更新组件   17
2.3.4  设置HTML元素的样式   20
2.3.5  显示待办事项列表   21
2.3.6  创建双向数据绑定   24
2.3.7  添加待办事项   26
2.3.8  显示完成的待办事项   29
2.4  本章小结   31
第3章  将Angular放在上下文中   33
3.1  理解Angular的强项   33
3.2  比较Angular、React和Vue.js   34
3.3  理解MVC模式   35
3.3.1  理解模型   36
3.3.2  理解控制器/组件   37
3.3.3  理解视图/模板   38
3.4  理解RESTful服务   38
3.5  常见的设计缺陷   39
3.5.1  将逻辑放错地方   40
3.5.2  数据存储采用的数据格式   40
3.5.3  足够的知识足以制造麻烦   40
3.6  本章小结   40
第4章  HTML和CSS入门   43
4.1  准备示例项目   43
4.2  理解HTML   45
4.2.1  理解空元素   45
4.2.2  理解属性   45
4.2.3  应用无值属性   46
4.2.4  在属性中引用字面量   46
4.2.5  理解元素内容   46
4.2.6  理解文档结构   47
4.3  理解Bootstrap   48
4.3.1  应用基本的Bootstrap类   48
4.3.2  使用Bootstrap样式化表格   51
4.3.3  使用Bootstrap创建表单   52
4.3.4  使用Bootstrap创建网格   53
4.4  本章小结   58
第5章  JavaScript与TypeScript:第1部分   59
5.1  准备示例项目   60
5.2  使用语句   61
5.3  定义和使用函数   62
5.3.1  定义带形参的函数   63
5.3.2  定义返回结果的函数   64
5.3.3  将函数用作其他函数的实参   64
5.4  使用变量和类型   65
5.4.1  使用变量闭包   67
5.4.2  使用基本数据类型   67
5.5  使用JavaScript操作符   69
5.5.1  使用条件语句   69
5.5.2  相等操作符和恒等操作符   70
5.5.3  显式类型转换   71
5.6  处理数组   72
5.6.1  使用数组字面量   73
5.6.2  数组内容的读取和修改   73
5.6.3  遍历数组内容   73
5.6.4  spread操作符   74
5.6.5  使用内置数组方法   75
5.7  本章小结   76
第6章  JavaScript与TypeScript:第2部分   77
6.1  准备示例项目   77
6.2  使用对象   78
6.2.1  使用对象字面量   78
6.2.2  将函数用作方法   79
6.2.3  定义类   79
6.3  处理JavaScript模块   82
6.4  有用的TypeScript特性   86
6.4.1  使用类型注解   86
6.4.2  使用元组   90
6.4.3  使用可索引类型   91
6.4.4  使用访问修饰符   91
6.5  本章小结   92
第7章  SportsStore:一个真实的应用程序   93
7.1  准备项目   93
7.1.1  安装额外的NPM软件包   94
7.1.2  准备RESTful Web服务   95
7.1.3  准备HTML文件   97
7.1.4  创建文件夹结构   97
7.1.5  运行示例应用程序   98
7.1.6  启动RESTful Web服务   98
7.2  准备Angular项目功能   98
7.2.1  更新根组件   98
7.2.2  更新根模块   99
7.2.3  检查引导文件   100
7.3  启动数据模型   100
7.3.1  创建模型类   100
7.3.2  创建虚拟数据源   101
7.3.3  创建模型存储库   102
7.3.4  创建功能模块   103
7.4  启动商店   103
7.4.1  创建Store组件和模板   104
7.4.2  创建商店功能模块   105
7.4.3  更新根组件和根模块   106
7.5  添加商店功能:产品详情   107
7.5.1  显示产品详情   107
7.5.2  添加类别选择   108
7.5.3  添加产品分页功能   110
7.5.4  创建自定义指令   112
7.6  本章小结   116
第8章  SportsStore:订单和结账   117
8.1  准备示例应用程序   117
8.2  创建购物车   117
8.2.1  创建购物车模型   117
8.2.2  创建购物车概览组件   119
8.2.3  将购物车集成到商店中   120
8.3  添加URL路由   123
8.3.1  创建购物车详情和结账组件   124
8.3.2  创建和应用路由配置   124
8.3.3  应用程序导航   126
8.3.4  路由守卫   128
8.4  完成购物车详情功能   130
8.5  处理订单   133
8.5.1  扩展模型   133
8.5.2  收集订单详情   135
8.6  使用RESTful Web服务   138
8.7  本章小结   140
第9章  SportsStore:管理   141
9.1  准备示例应用程序   141
9.1.1  创建模块   141
9.1.2  配置URL路由系统   144
9.1.3  导航到管理URL   145
9.2  实现身份验证   146
9.2.1  理解身份验证系统   146
9.2.2  扩展数据源   147
9.2.3  创建身份验证服务   148
9.2.4  启用身份验证   149
9.3  扩展数据源和存储库   151
9.4  创建管理功能结构   155
9.4.1  创建占位符组件   155
9.4.2  准备常用内容和功能模块   156
9.4.3  实现产品功能   158
9.4.4  实现订单功能   162
9.5  本章小结   164
第10章  SportsStore:渐进式特性和部署   165
10.1  准备示例应用程序   165
10.2  添加渐进式特性   165
10.2.1  安装PWA包   165
10.2.2  缓存数据URL   166
10.2.3  响应对连接的更改   167
10.3  为部署准备应用程序   169
10.3.1  创建数据文件   169
10.3.2  创建服务器   169
10.3.3  更改存储库类中的Web服务URL   171
10.4  构建和测试应用程序   172
10.5  将SportsStore应用程序容器化   174
10.5.1  安装Docker   174
10.5.2  准备应用程序   174
10.5.3  创建Docker容器   174
10.5.4  运行应用程序   175
10.6  本章小结   177
第Ⅱ部分  Angular详解
第11章  理解Angular项目和工具   181
11.1  创建新的Angular项目   181
11.2  了解项目结构   182
11.2.1  了解src文件夹   183
11.2.2  了解包文件夹   184
11.3  使用开发工具   187
11.3.1  了解开发HTTP服务器   187
11.3.2  了解构建过程   188
11.3.3  使用linter   192
11.4  理解Angular应用程序是如何工作的   194
11.4.1  理解HTML文档   194
11.4.2  理解应用程序引导   195
11.4.3  理解Angular根模块   196
11.4.4  理解Angular组件   197
11.4.5  理解内容显示   197
11.5  了解生产构建过程   199
11.5.1  了解预编译   199
11.5.2  了解差异加载   199
11.5.3  运行生产构建   201
11.6  在Angular项目中开始开发   201
11.6.1  创建数据模型   201
11.6.2  创建组件和模板   205
11.6.3  配置根Angular模块   206
11.7  本章小结   207
第12章  使用数据绑定   209
12.1  准备示例项目   210
12.2  理解单向数据绑定   210
12.2.1  理解绑定目标   212
12.2.2  理解表达式   213
12.2.3  理解括号   214
12.2.4  理解宿主元素   214
12.3  使用标准属性和属性绑定   215
12.3.1  使用标准属性绑定   215
12.3.2  使用字符串插入绑定   216
12.3.3  使用元素属性绑定   217
12.4  设置CSS类和样式   218
12.4.1  使用类绑定   218
12.4.2  使用样式绑定   223
12.5  更新应用程序的数据   226
12.6  本章小结   228
第13章  使用内置指令   229
13.1  准备示例项目   230
13.2  使用内置指令   231
13.2.1  使用ngIf指令   232
13.2.2  使用ngSwitch指令   234
13.2.3  使用ngFor指令   236
13.2.4  使用ngTemplateOutlet指令   244
13.3  理解单向数据绑定的限制   246
13.3.1  使用幂等表达式   246
13.3.2  理解表达式上下文   249
13.4  本章小结   251
第14章  使用事件和表单   253
14.1  准备示例项目   254
14.1.1  导入表单模块   254
14.1.2  准备组件和模板   254
14.2  使用事件绑定   255
14.2.1  使用事件数据   259
14.2.2  使用模板引用变量   260
14.3  使用双向数据绑定   262
14.4  处理表单   265
14.4.1  向示例应用程序添加表单   265
14.4.2  添加表单数据验证   267
14.4.3  验证整个表单   275
14.5  使用基于模型的表单   281
14.5.1  启用基于模型的表单功能   282
14.5.2  定义表单模型类   282
14.5.3  使用模型进行验证   285
14.5.4  根据模型生成元素   288
14.6  创建自定义表单验证器   289
14.7  本章小结   292
第15章  创建属性指令   293
15.1  准备示例项目   294
15.2  创建简单的属性指令   296
15.3  在指令中访问应用程序数据   298
15.3.1  读取宿主元素属性   298
15.3.2  创建数据绑定输入
属性   300
15.3.3  响应输入属性的变化   303
15.4  创建自定义事件   305
15.5  创建宿主元素绑定   308
15.6  在宿主元素上创建双向绑定   309
15.7  导出指令用于模板变量   312
15.8  本章小结   315
第16章  创建结构型指令   317
16.1  准备示例项目   318
16.2  创建简单的结构型指令   319
16.2.1  实现结构型指令类   320
16.2.2  启用结构型指令   322
16.2.3  使用结构型指令的简洁语法   323
16.3  创建迭代结构型指令   324
16.3.1  提供额外的上下文数据   327
16.3.2  使用简洁的结构语法   329
16.3.3  处理属性级数据变更   330
16.3.4  处理集合级数据变更   331
16.4  查询宿主元素内容   340
16.4.1  查询多个子内容   344
16.4.2  接收查询变更通知   346
16.5  本章小结   347
第17章  理解组件   349
17.1  准备示例项目   350
17.2  使用组件组织应用程序   350
17.2.1  创建新组件   351
17.2.2  定义模板   354
17.2.3  完成组件的重组   363
17.3  使用组件样式   364
17.3.1  定义外部组件样式   365
17.3.2  使用高级样式特性   366
17.4  查询模板内容   372
17.5  本章小结   374
第18章  使用和创建管道   375
18.1  准备示例项目   376
18.2  理解管道   378
18.3  创建一个自定义管道   380
18.3.1  注册自定义管道   381
18.3.2  应用自定义管道   382
18.3.3  组合管道   383
18.3.4  创建非纯管道   384
18.4  使用内置管道   387
18.4.1  格式化数值   388
18.4.2  格式化货币值   390
18.4.3  格式化百分比   393
18.4.4  格式化日期   394
18.4.5  改变字符串大小写   397
18.4.6  将数据序列化为JSON数据   399
18.4.7  将数据数组切片   400
18.4.8  格式化键/值对   401
18.4.9  选择值   402
18.4.10  复数化值   404
18.5  本章小结   405
第19章  使用服务   407
19.1  准备示例项目   408
19.2  理解对象分发问题   409
19.2.1  问题的提出   409
19.2.2  利用依赖注入将对象作为服务分发   414
19.2.3  在其他构造块中声明依赖   419
19.3  理解测试隔离问题   425
19.4  完成服务的融入   428
19.4.1  更新根组件和模板   429
19.4.2  更新子组件   430
19.5  本章小结   431
第20章  使用服务提供程序   433
20.1  准备示例项目   434
20.2  使用服务提供程序   435
20.2.1  使用类提供程序   438
20.2.2  使用值提供程序   445
20.2.3  使用工厂提供程序   447
20.2.4  使用已有的服务提供程序   449
20.3  使用本地提供程序   450
20.3.1  理解单个服务对象的局限性   450
20.3.2  在组件中创建本地提供程序   452
20.3.3  理解服务提供程序的替代方案   453
20.3.4  控制依赖解析   458
20.4  本章小结   459
第21章  使用和创建模块   461
21.1  准备示例项目   461
21.2  理解根模块   463
21.2.1  理解imports属性   465
21.2.2  理解declarations属性   465
21.2.3  理解providers属性   466
21.2.4  理解bootstrap属性   466
21.3  创建功能模块   468
21.3.1  创建模型模块   469
21.3.2  创建实用工具功能模块   473
21.3.3  使用组件创建一个功能模块   478
21.4  本章小结   482
第Ⅲ部分  Angular高级功能
第22章  创建示例项目   485
22.1  启动示例项目   485
22.1.1  添加和配置Bootstrap 
CSS包   485
22.1.2  创建项目结构   486
22.2  创建模型模块   486
22.2.1  创建产品数据类型   486
22.2.2  创建数据源和存储库   486
22.2.3  完成模型模块   488
22.3  创建核心模块   488
22.3.1  创建共享状态服务   488
22.3.2  创建表格组件   489
22.3.3  创建表单组件   490
22.3.4  完成核心模块   492
22.4  创建消息模块   493
22.4.1  创建消息模型和服务   493
22.4.2  创建组件和模板   493
22.4.3  完成消息模块   494
22.5  完成项目   495
22.6  本章小结   496
第23章  使用Reactive Extensions   497
23.1  准备示例项目   498
23.2  理解问题   498
23.3  使用Reactive Extensions解决
问题   501
23.3.1  理解Observable   502
23.3.2  理解Observer   503
23.3.3  理解Subject   505
23.4  使用async管道   506
23.5  扩展应用程序功能模块   509
23.6  更进一步   511
23.6.1  过滤事件   511
23.6.2  转换事件   513
23.6.3  只接收不同的事件   515
23.6.4  获取和忽略事件   517
23.7  本章小结   519
第24章  生成HTTP请求   521
24.1  准备示例项目   522
24.1.1  配置模型功能模块   522
24.1.2  创建数据文件   523
24.1.3  更新表单组件   523
24.1.4  运行示例项目   524
24.2  理解RESTful Web服务   524
24.3  替换静态数据源   525
24.3.1  创建新的数据源服务   525
24.3.2  配置数据源   527
24.3.3  使用REST数据源   527
24.3.4  保存和删除数据   529
24.4  加强HTTP请求   531
24.5  生成跨域请求   533
24.6  配置请求头   535
24.7  处理错误   537
24.7.1  生成用户可使用的消息   538
24.7.2  处理错误   540
24.8  本章小结   541
第25章  路由与导航:第1部分   543
25.1  准备示例项目   544
25.2  开始学习路由   546
25.2.1  创建路由配置   546
25.2.2  创建路由组件   548
25.2.3  更新根模块   548
25.2.4  完成配置   549
25.2.5  添加导航链接   550
25.2.6  理解路由的效果   552
25.3  完成路由实现   554
25.3.1  在组件中处理路由变化   554
25.3.2  使用路由参数   556
25.3.3  在代码中导航   562
25.3.4  接收导航事件   564
25.3.5  删除事件绑定和支持代码   566
25.4  本章小结   568
第26章  路由与导航:第2部分   569
26.1  准备示例项目   569
26.2  使用通配符和重定向   575
26.2.1  在路由中使用通配符   575
26.2.2  在路由中使用重定向   577
26.3  在组件内部导航   578
26.3.1  响应正在发生的路由变化   579
26.3.2  为活动路由设置不同样式的链接   581
26.3.3  修复All按钮   584
26.4  创建子路由   585
26.4.1  创建子路由出口   586
26.4.2  从子路由访问参数   588
26.5  本章小结   592
第27章  路由与导航:第3部分   593
27.1  准备示例项目   593
27.2  守卫路由   595
27.2.1  使用解析器推迟导航   595
27.2.2  避免带有守卫的导航   601
27.3  动态加载功能模块   613
27.3.1  创建一个简单的功能模块   613
27.3.2  动态加载模块   614
27.3.3  守卫动态模块   618
27.4  指定命名出口   620
27.4.1  创建附加的出口元素   621
27.4.2  在使用多个出口的情况下导航   623
27.5  本章小结   624
第28章  使用动画   625
28.1  准备示例项目   626
28.1.1  禁用HTTP延迟   626
28.1.2  简化表格模板和路由配置   627
28.2  开始学习Angular动画   629
28.2.1  启用动画模块   629
28.2.2  创建动画   630
28.2.3  应用动画   633
28.2.4  测试动画效果   635
28.3  理解内置的动画状态   637
28.4  理解元素过渡   638
28.4.1  为内置状态创建过渡   638
28.4.2  控制动画的过渡   639
28.5  理解动画样式组   644
28.5.1  在可重用的分组中定义公共样式   644
28.5.2  使用元素变形   646
28.5.3  应用CSS框架样式   647
28.6  本章小结   649
第29章  Angular单元测试   651
29.1  准备示例项目   652
29.2  创建一个简单的单元测试   654
29.3  使用Jasmine完成单元测试   655
29.4  测试Angular组件   656
29.4.1  使用TestBed类完成工作   656
29.4.2  测试数据绑定   660
29.4.3  测试带有外部模板的组件   662
29.4.4  测试组件事件   663
29.4.5  测试输出属性   665
29.4.6  测试输入属性   667
29.4.7  测试异步操作   669
29.5  测试Angular指令   671
29.6  本章小结   673

本目录推荐