Web开发经典丛书ANGULAR 高级编程第3版
温馨提示:5折以下图书主要为出版社尾货,大部分为全新(有塑封/无塑封),个别图书品相8-9成新、切口有划线标记、光盘等附件不全详细品相说明>>
- ISBN:9787302529170
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:532
- 出版时间:2018-06-01
- 条形码:9787302529170 ; 978-7-302-52917-0
本书特色
主要内容: ? 深入理解MVC模式的架构 ? 使用Angular创建内容丰富、灵动多变的Web应用客户端 ? 使用ng工具创建和构建Angular项目 ? 扩展和定制Angular ? 测试Angular项目 新增内容: ? 根据Angular 7的特性和变化做了全面细致的修订 ? 涵盖@angular/cli、ng命令行工具和webpack ? 包含用于简化异步HTTP请求的HttpClient ? 更新了管道和本地化文本的显示
内容简介
主要内容: ? 深入理解MVC模式的架构 ? 使用Angular创建内容丰富、灵动多变的Web应用客户端 ? 使用ng工具创建和构建Angular项目 ? 扩展和定制Angular ? 测试Angular项目 新增内容: ? 根据Angular 7的特性和变化做了全面细致的修订 ? 涵盖@angular/cli、ng命令行工具和webpack ? 包含用于简化异步HTTP请求的HttpClient ? 更新了管道和本地化文本的显示
目录
第Ⅰ部分 Angular基础知识
第1章 准备工作 3
1.1 需要了解什么 3
1.2 本书结构 3
1.2.1 第Ⅰ部分:Angular基础知识 3
1.2.2 第Ⅱ部分:Angular详解 3
1.2.3 第Ⅲ部分:Angular高级功能 3
1.3 大量示例 4
1.4 获取示例代码 5
1.5 如何搭建开发环境 5
1.6 联系作者 5
1.7 本章小结 5
第2章 **个Angular应用程序 7
2.1 准备开发环境 7
2.1.1 安装Node.js 7
2.1.2 安装angular-cli包 8
2.1.3 安装Git 8
2.1.4 安装编辑器 8
2.1.5 安装浏览器 9
2.2 创建并准备项目 9
2.2.1 创建项目 9
2.2.2 添加Bootstrap CSS包 9
2.2.3 启动开发工具 10
2.2.4 编辑HTML文件 10
2.3 向项目中添加Angular功能 12
2.3.1 准备HTML文件 12
2.3.2 创建数据模型 12
2.3.3 创建模板 14
2.3.4 准备组件 14
2.3.5 将应用程序组合起来 16
2.4 向示例应用程序中添加功能 17
2.4.1 添加待办事项表格 17
2.4.2 创建双向数据绑定 19
2.4.3 添加待办事项 21
2.5 本章小结 23
第3章 将Angular放在上下文中 25
3.1 理解Angular的强项 25
3.1.1 往返式应用程序和单页式应用程序 25
3.1.2 Angular与jQuery的比较 26
3.2 比较Angular、React和Vue.js 27
3.3 理解MVC模式 27
3.3.1 理解模型 28
3.3.2 理解控制器/组件 29
3.3.3 理解视图/模板 30
3.4 理解RESTful服务 30
3.5 常见的设计缺陷 31
3.5.1 将逻辑放错地方 31
3.5.2 数据存储采用的数据格式 32
3.5.3 足够的知识足以制造麻烦 32
3.6 本章小结 32
第4章 HTML和CSS入门 33
4.1 准备示例项目 33
4.2 理解HTML 34
4.2.1 理解空元素 35
4.2.2 理解属性 35
4.2.3 应用无值属性 35
4.2.4 在属性中引用字面量 35
4.2.5 理解元素内容 36
4.2.6 理解文档结构 36
4.3 理解Bootstrap 37
4.3.1 应用基本的Bootstrap类 37
4.3.2 使用Bootstrap样式化表格 40
4.3.3 使用Bootstrap创建表单 41
4.3.4 使用Bootstrap创建网格 42
4.4 本章小结 46
第5章 JavaScript与TypeScript:第1部分 47
5.1 准备示例项目 48
5.2 使用语句 49
5.3 定义和使用函数 50
5.3.1 定义带参数的函数 51
5.3.2 定义返回结果的函数 52
5.3.3 将函数用作其他函数的实参 52
5.4 使用变量和类型 53
5.4.1 使用变量闭包 54
5.4.2 使用基本数据类型 54
5.5 使用JavaScript操作符 56
5.5.1 使用条件语句 56
5.5.2 相等操作符和恒等操作符 57
5.5.3 显式类型转换 58
5.6 处理数组 59
5.6.1 使用数组字面量 59
5.6.2 数组内容的读取和修改 59
5.6.3 遍历数组内容 60
5.6.4 spread操作符 60
5.6.5 使用内置数组方法 61
5.7 本章小结 62
第6章 JavaScript与TypeScript:第2部分 63
6.1 准备示例项目 63
6.2 使用对象 63
6.2.1 使用对象字面量 64
6.2.2 将函数用作方法 64
6.2.3 定义类 65
6.3 处理JavaScript模块 67
6.4 有用的TypeScript特性 70
6.4.1 使用类型注解 70
6.4.2 使用元组 74
6.4.3 使用可索引类型 74
6.4.4 使用访问修饰符 74
6.5 本章小结 75
第7章 SportsStore:一个真实的应用程序 77
7.1 准备项目 77
7.1.1 安装额外的NPM软件包 77
7.1.2 准备RESTful Web服务 78
7.1.3 准备HTML文件 80
7.1.4 创建文件夹结构 80
7.1.5 运行示例应用程序 80
7.1.6 启动RESTful Web服务 81
7.2 准备Angular项目功能 81
7.2.1 更新根组件 81
7.2.2 更新根模块 82
7.2.3 检查引导文件 82
7.3 启动数据模型 83
7.3.1 创建模型类 83
7.3.2 创建虚拟数据源 83
7.3.3 创建模型存储库 84
7.3.4 创建功能模块 85
7.4 启动商店 85
7.4.1 创建Store组件和模板 85
7.4.2 创建商店功能模块 86
7.4.3 更新根组件和根模块 87
7.5 添加商店功能:产品详情 88
7.5.1 显示产品详情 88
7.5.2 添加类别选择 89
7.5.3 添加产品分页功能 90
7.5.4 创建自定义指令 92
7.6 本章小结 95
第8章 SportsStore:订单和结账 97
8.1 准备示例应用程序 97
8.2 创建购物车 97
8.2.1 创建购物车模型 97
8.2.2 创建购物车概览组件 98
8.2.3 将购物车集成到商店中 100
8.3 添加URL路由 102
8.3.1 创建购物车详情和结账组件 102
8.3.2 创建和应用路由配置 103
8.3.3 应用程序导航 104
8.3.4 路由守卫 106
8.4 完成购物车详情功能 107
8.5 处理订单 109
8.5.1 扩展模型 109
8.5.2 收集订单详情 111
8.6 使用RESTful Web服务 114
8.7 本章小结 115
第9章 SportsStore:管理 117
9.1 准备示例应用程序 117
9.1.1 创建模块 117
9.1.2 配置URL路由系统 119
9.1.3 导航到管理URL 120
9.2 实现身份验证 121
9.2.1 理解身份验证系统 121
9.2.2 扩展数据源 122
9.2.3 创建身份验证服务 122
9.2.4 启用身份验证 123
9.3 扩展数据源和存储库 125
9.4 创建管理功能结构 128
9.4.1 创建占位符组件 128
9.4.2 准备常用内容和功能模块 129
9.4.3 实现产品功能 130
9.4.4 实现订单功能 133
9.5 本章小结 135
第10章 SportsStore:渐进式功能和部署 137
10.1 准备示例应用程序 137
10.2 添加渐进式特性 137
10.2.1 安装PWA包 137
10.2.2 缓存数据URL 137
10.2.3 响应对连接的更改 138
10.3 为部署准备应用程序 140
10.3.1 创建数据文件 140
10.3.2 创建服务器 140
10.3.3 更改存储库类中的Web服务URL 142
10.4 构建和测试应用程序 142
10.5 将SportsStore应用程序容器化 144
10.5.1 安装Docker 144
10.5.2 准备应用程序 144
10.5.3 创建Docker容器 144
10.5.4 运行应用程序 145
10.6 本章小结 146
第Ⅱ部分 Angular详解
第11章 创建Angular项目 149
11.1 创建新的Angular项目 149
11.2 了解项目结构 150
11.2.1 了解src文件夹 151
11.2.2 了解包文件夹 152
11.3 使用开发工具 154
11.3.1 了解开发HTTP服务器 155
11.3.2 了解热模型替换 155
11.3.3 使用linter 156
11.4 理解Angular应用程序是如何工作的 158
11.4.1 理解HTML文档 158
11.4.2 理解应用程序引导 158
11.4.3 理解Angular根模块 159
11.4.4 理解Angular组件 160
11.4.5 理解内容显示 160
11.5 在Angular项目中开始开发 161
11.5.1 添加Bootstrap CSS框架 161
11.5.2 创建数据模型 161
11.5.3 创建模板和根组件 164
11.5.4 配置根Angular模块 165
11.6 本章小结 165
第12章 使用数据绑定 167
12.1 准备示例项目 167
12.2 理解单向数据绑定 168
12.2.1 理解绑定目标 169
12.2.2 理解表达式 170
12.2.3 理解括号 171
12.2.4 理解宿主元素 171
12.3 使用标准属性和属性绑定 172
12.3.1 使用标准属性绑定 172
12.3.2 使用字符串插入绑定 173
12.3.3 使用元素属性绑定 174
12.4 设置CSS类和样式 174
12.4.1 使用类绑定 175
12.4.2 使用样式绑定 178
12.5 更新应用程序的数据 180
12.6 本章小结 182
第13章 使用内置指令 183
13.1 准备示例项目 183
13.2 使用内置指令 185
13.2.1 使用ngIf指令 185
13.2.2 使用ngSwitch指令 187
13.2.3 使用ngFor指令 189
13.2.4 使用ngTemplateOutlet指令 195
13.3 理解单向数据绑定的限制 197
13.3.1 使用幂等表达式 197
13.3.2 理解表达式上下文 199
13.4 本章小结 201
第14章 使用事件和表单 203
14.1 准备示例项目 203
14.1.1 导入表单模块 203
14.1.2 准备组件和模板 204
14.2 使用事件绑定 205
14.2.1 理解动态定义的属性 206
14.2.2 使用事件数据 208
14.2.3 使用模板引用变量 209
14.3 使用双向数据绑定 210
14.4 处理表单 212
14.4.1 向示例应用程序添加表单 213
14.4.2 添加表单数据验证 214
14.4.3 验证整个表单 221
14.5 使用基于模型的表单 226
14.5.1 启用基于模型的表单功能 226
14.5.2 定义表单模型类 226
14.5.3 使用模型进行验证 229
14.5.4 根据模型生成元素 231
14.6 创建自定义表单验证器 232
14.7 本章小结 234
第15章 创建属性指令 235
15.1 准备示例项目 235
15.2 创建简单的属性指令 237
15.3 在指令中访问应用程序数据 239
15.3.1 读取宿主元素属性 239
15.3.2 创建数据绑定输入属性 241
15.3.3 响应输入属性的变化 243
15.4 创建自定义事件 244
15.5 创建宿主元素绑定 247
15.6 在宿主元素上创建双向绑定 248
15.7 导出指令用于模板变量 250
15.8 本章小结 251
第16章 创建结构型指令 253
16.1 准备示例项目 253
16.2 创建简单的结构型指令 254
16.2.1 实现结构型指令类 255
16.2.2 启用结构型指令 257
16.2.3 使用结构型指令的简洁语法 258
16.3 创建迭代结构型指令 259
16.3.1 提供额外的上下文数据 261
16.3.2 使用简洁的结构语法 262
16.3.3 处理属性级数据变更 263
16.3.4 处理集合级数据变更 264
16.4 查询宿主元素内容 271
16.4.1 查询多个子内容 274
16.4.2 接收查询变更通知 275
16.5 本章小结 276
第17章 理解组件 277
17.1 准备示例项目 278
17.2 使用组件来组织应用程序 278
17.2.1 创建新组件 279
17.2.2 定义模板 282
17.2.3 完成组件的重组 289
17.3 使用组件样式 289
17.3.1 定义外部组件样式 290
17.3.2 使用高级样式特性 291
17.4 查询模板内容 296
17.5 本章小结 298
第18章 使用和创建管道 299
18.1 准备示例项目 299
18.2 理解管道 302
18.3 创建一个自定义管道 303
18.3.1 注册自定义管道 303
18.3.2 应用自定义管道 304
18.3.3 组合管道 305
18.3.4 创建非纯管道 306
18.4 使用内置管道 309
18.4.1 格式化数值 309
18.4.2 格式化货币值 311
18.4.3 格式化百分比 313
18.4.4 格式化日期 314
18.4.5 改变字符串大小写 317
18.4.6 将数据序列化为JSON数据 317
18.4.7 将数据数组切片 318
18.5 本章小结 319
第19章 使用服务 321
19.1 准备示例项目 321
19.2 理解对象分发问题 322
19.2.1 问题的提出 322
19.2.2 利用依赖注入将对象作为服务分发 326
19.2.3 在其他构造块中声明依赖 330
19.3 理解测试隔离问题 335
19.4 完成服务的融入 338
19.4.1 更新根组件和模板 338
19.4.2 更新子组件 339
19.5 本章小结 340
第20章 使用服务提供程序 341
20.1 准备示例项目 342
20.2 使用服务提供程序 343
20.2.1 使用类提供程序 345
20.2.2 使用值提供程序 350
20.2.3 使用工厂提供程序 351
20.2.4 使用已有的服务提供程序 353
20.3 使用本地提供程序 354
20.3.1 理解单个服务对象的局限性 354
20.3.2 在组件中创建本地提供程序 355
20.3.3 理解服务提供程序的替代方案 357
20.3.4 控制依赖解析 360
20.4 本章小结 361
第21章 使用和创建模块 363
21.1 准备示例项目 363
21.2 理解根模块 365
21.2.1 理解imports属性 366
21.2.2 理解declarations 属性 366
21.2.3 理解providers属性 367
21.2.4 理解bootstrap属性 367
21.3 创建功能模块 368
21.3.1 创建模型模块 369
21.3.2 创建实用工具功能模块 373
21.3.3 用组件创建一个功能模块 377
21.4 本章小结 380
第Ⅲ部分 Angular高级功能
第22章 创建示例项目 383
22.1 启动示例项目 383
22.1.1 添加和配置Bootstrap CSS包 383
22.1.2 创建项目结构 383
22.2 创建模型模块 384
22.2.1 创建产品数据类型 384
22.2.2 创建数据源和存储库 384
22.2.3 完成模型模块 385
22.3 创建核心模块 385
22.3.1 创建共享状态服务 386
22.3.2 创建表格组件 386
22.3.3 创建表单组件 387
22.4.4 完成核心模块 389
22.4 创建消息模块 389
22.4.1 创建消息模型和服务 389
22.4.2 创建组件和模板 390
22.4.3 完成消息模块 390
22.5 完成项目 391
22.6 本章小结 392
第23章 使用Reactive Extensions 393
23.1 准备示例项目 394
23.2 理解问题 394
23.3 使用Reactive Extensions解决问题 396
23.3.1 理解Observable 396
23.3.2 理解Observer 398
23.3.3 理解Subject 399
23.4 使用async管道 400
23.5 扩展应用程序功能模块 402
23.6 更进一步 404
23.6.1 过滤事件 404
23.6.2 转换事件 405
23.6.3 只接收不同的事件 407
23.6.4 获取和忽略事件 409
23.7 本章小结 410
第24章 生成异步HTTP请求 411
24.1 准备示例项目 411
24.1.1 配置模型功能模块 412
24.1.2 创建数据文件 412
24.1.3 更新表单组件 413
24.1.4 运行示例项目 413
24.2 理解RESTful Web服务 414
24.3 替换静态数据源 414
24.3.1 创建新的数据源服务 414
24.3.2 配置数据源 416
24.3.3 使用REST数据源 416
24.3.4 保存和删除数据 417
24.4 加强HTTP请求 419
24.5 生成跨域请求 420
24.6 配置请求头 422
24.7 处理错误 424
24.7.1 生成用户可使用的消息 425
24.7.2 处理错误 426
24.8 本章小结 427
第25章 路由与导航:第1部分 429
25.1 准备示例项目 429
25.2 开始学习路由 431
25.2.1 创建路由配置 431
25.2.2 创建路由组件 433
25.2.3 更新根模块 433
25.2.4 完成配置 433
25.2.5 添加导航链接 434
25.2.6 理解路由的效果 436
25.3 完成路由实现 437
25.3.1 在组件中处理路由变化 438
25.3.2 使用路由参数 439
25.3.3 在代码中导航 444
25.3.4 接收导航事件 445
25.3.5 删除事件绑定和支持代码 446
25.4 本章小结 448
第26章 路由与导航:第2部分 449
26.1 准备示例项目 449
26.2 使用通配符和重定向 454
26.2.1 在路由中使用通配符 454
26.2.2 在路由中使用重定向 455
26.3 在组件内部导航 456
26.3.1 响应正在发生的路由变化 457
26.3.2 为活动路由设置不同样式的链接 459
26.3.3 修复All按钮 461
26.4 创建子路由 462
26.4.1 创建子路由出口 463
26.4.2 从子路由访问参数 464
26.5 本章小结 467
第27章 路由与导航:第3部分 469
27.1 准备示例项目 469
27.2 守卫路由 470
27.2.1 使用解析器推迟导航 470
27.2.2 避免带有守卫的导航 476
27.3 动态加载功能模块 484
27.3.1 创建一个简单的功能模块 484
27.3.2 动态加载模块 485
27.3.3 守卫动态模块 488
27.4 指定命名出口 490
27.4.1 创建附加的出口元素 490
27.4.2 在使用多个出口的情况下导航 491
27.5 本章小结 493
第28章 使用动画 495
28.1 准备示例项目 496
28.1.1 禁用HTTP延迟 496
28.1.2 简化表格模板和路由配置 496
28.2 开始学习Angular动画 498
28.2.1 启用动画模块 498
28.2.2 创建动画 499
28.2.3 应用动画 501
28.2.4 测试动画效果 503
28.3 理解内置的动画状态 504
28.4 理解元素过渡 505
28.4.1 为内置状态创建过渡 505
28.4.2 控制动画的过渡 506
28.5 理解动画样式组 510
28.5.1 在可重用的分组中定义公共样式 510
28.5.2 使用元素变形 511
28.5.3 应用CSS框架样式 512
28.6 本章小结 514
第29章 Angular单元测试 515
29.1 准备示例项目 516
29.2 创建一个简单的单元测试 517
29.3 使用Jasmine完成单元测试 518
29.4 测试Angular组件 519
29.4.1 使用TestBed类完成工作 519
29.4.2 测试数据绑定 522
29.4.3 测试带有外部模板的组件 523
29.4.4 测试组件事件 525
29.4.5 测试输出属性 526
29.4.6 测试输入属性 528
29.4.7 测试异步操作 529
29.5 测试Angular指令 531
29.6 本章小结 532
作者简介
Adam Freeman是一位经验丰富的IT专业人士,曾在多家公司担任过高级职位,曾经担任一家全球银行的首席技术官和首席运营官。退休之后,他热衷于写作和长跑。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥48.2¥79.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0