Web开发经典丛书ANGULAR 高级编程第3版
本书特色
[
主要内容:
? 深入理解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
? 更新了管道和本地化文本的显示
]
作者简介
[
Adam Freeman是一位经验丰富的IT专业人士,曾在多家公司担任过高级职位,曾经担任一家全球银行的首席技术官和首席运营官。退休之后,他热衷于写作和长跑。
]
目录
目 录 第Ⅰ部分 Angular基础知识第1章 准备工作 31.1 需要了解什么 31.2 本书结构 31.2.1 第Ⅰ部分:Angular基础知识 31.2.2 第Ⅱ部分:Angular详解 31.2.3 第Ⅲ部分:Angular高级功能 31.3 大量示例 41.4 获取示例代码 51.5 如何搭建开发环境 51.6 联系作者 51.7 本章小结 5第2章 **个Angular应用程序 72.1 准备开发环境 72.1.1 安装Node.js 72.1.2 安装angular-cli包 82.1.3 安装Git 82.1.4 安装编辑器 82.1.5 安装浏览器 92.2 创建并准备项目 92.2.1 创建项目 92.2.2 添加Bootstrap CSS包 92.2.3 启动开发工具 102.2.4 编辑HTML文件 102.3 向项目中添加Angular功能 122.3.1 准备HTML文件 122.3.2 创建数据模型 122.3.3 创建模板 142.3.4 准备组件 142.3.5 将应用程序组合起来 162.4 向示例应用程序中添加功能 172.4.1 添加待办事项表格 172.4.2 创建双向数据绑定 192.4.3 添加待办事项 212.5 本章小结 23第3章 将Angular放在上下文中 253.1 理解Angular的强项 253.1.1 往返式应用程序和单页式应用程序 253.1.2 Angular与jQuery的比较 263.2 比较Angular、React和Vue.js 273.3 理解MVC模式 273.3.1 理解模型 283.3.2 理解控制器/组件 293.3.3 理解视图/模板 303.4 理解RESTful服务 303.5 常见的设计缺陷 313.5.1 将逻辑放错地方 313.5.2 数据存储采用的数据格式 323.5.3 足够的知识足以制造麻烦 323.6 本章小结 32第4章 HTML和CSS入门 334.1 准备示例项目 334.2 理解HTML 344.2.1 理解空元素 354.2.2 理解属性 354.2.3 应用无值属性 354.2.4 在属性中引用字面量 354.2.5 理解元素内容 364.2.6 理解文档结构 364.3 理解Bootstrap 374.3.1 应用基本的Bootstrap类 374.3.2 使用Bootstrap样式化表格 404.3.3 使用Bootstrap创建表单 414.3.4 使用Bootstrap创建网格 424.4 本章小结 46第5章 JavaScript与TypeScript:第1部分 475.1 准备示例项目 485.2 使用语句 495.3 定义和使用函数 505.3.1 定义带参数的函数 515.3.2 定义返回结果的函数 525.3.3 将函数用作其他函数的实参 525.4 使用变量和类型 535.4.1 使用变量闭包 545.4.2 使用基本数据类型 545.5 使用JavaScript操作符 565.5.1 使用条件语句 565.5.2 相等操作符和恒等操作符 575.5.3 显式类型转换 585.6 处理数组 595.6.1 使用数组字面量 595.6.2 数组内容的读取和修改 595.6.3 遍历数组内容 605.6.4 spread操作符 605.6.5 使用内置数组方法 615.7 本章小结 62第6章 JavaScript与TypeScript:第2部分 636.1 准备示例项目 636.2 使用对象 636.2.1 使用对象字面量 646.2.2 将函数用作方法 646.2.3 定义类 656.3 处理JavaScript模块 676.4 有用的TypeScript特性 706.4.1 使用类型注解 706.4.2 使用元组 746.4.3 使用可索引类型 746.4.4 使用访问修饰符 746.5 本章小结 75第7章 SportsStore:一个真实的应用程序 777.1 准备项目 777.1.1 安装额外的NPM软件包 777.1.2 准备RESTful Web服务 787.1.3 准备HTML文件 807.1.4 创建文件夹结构 807.1.5 运行示例应用程序 807.1.6 启动RESTful Web服务 817.2 准备Angular项目功能 817.2.1 更新根组件 817.2.2 更新根模块 827.2.3 检查引导文件 827.3 启动数据模型 837.3.1 创建模型类 837.3.2 创建虚拟数据源 837.3.3 创建模型存储库 847.3.4 创建功能模块 857.4 启动商店 857.4.1 创建Store组件和模板 857.4.2 创建商店功能模块 867.4.3 更新根组件和根模块 877.5 添加商店功能:产品详情 887.5.1 显示产品详情 887.5.2 添加类别选择 897.5.3 添加产品分页功能 907.5.4 创建自定义指令 927.6 本章小结 95第8章 SportsStore:订单和结账 978.1 准备示例应用程序 978.2 创建购物车 978.2.1 创建购物车模型 978.2.2 创建购物车概览组件 988.2.3 将购物车集成到商店中 1008.3 添加URL路由 1028.3.1 创建购物车详情和结账组件 1028.3.2 创建和应用路由配置 1038.3.3 应用程序导航 1048.3.4 路由守卫 1068.4 完成购物车详情功能 1078.5 处理订单 1098.5.1 扩展模型 1098.5.2 收集订单详情 1118.6 使用RESTful Web服务 1148.7 本章小结 115第9章 SportsStore:管理 1179.1 准备示例应用程序 1179.1.1 创建模块 1179.1.2 配置URL路由系统 1199.1.3 导航到管理URL 1209.2 实现身份验证 1219.2.1 理解身份验证系统 1219.2.2 扩展数据源 1229.2.3 创建身份验证服务 1229.2.4 启用身份验证 1239.3 扩展数据源和存储库 1259.4 创建管理功能结构 1289.4.1 创建占位符组件 1289.4.2 准备常用内容和功能模块 1299.4.3 实现产品功能 1309.4.4 实现订单功能 1339.5 本章小结 135第10章 SportsStore:渐进式功能和部署 13710.1 准备示例应用程序 13710.2 添加渐进式特性 13710.2.1 安装PWA包 13710.2.2 缓存数据URL 13710.2.3 响应对连接的更改 13810.3 为部署准备应用程序 14010.3.1 创建数据文件 14010.3.2 创建服务器 14010.3.3 更改存储库类中的Web服务URL 14210.4 构建和测试应用程序 14210.5 将SportsStore应用程序容器化 14410.5.1 安装Docker 14410.5.2 准备应用程序 14410.5.3 创建Docker容器 14410.5.4 运行应用程序 14510.6 本章小结 146第Ⅱ部分 Angular详解第11章 创建Angular项目 14911.1 创建新的Angular项目 14911.2 了解项目结构 15011.2.1 了解src文件夹 15111.2.2 了解包文件夹 15211.3 使用开发工具 15411.3.1 了解开发HTTP服务器 15511.3.2 了解热模型替换 15511.3.3 使用linter 15611.4 理解Angular应用程序是如何工作的 15811.4.1 理解HTML文档 15811.4.2 理解应用程序引导 15811.4.3 理解Angular根模块 15911.4.4 理解Angular组件 16011.4.5 理解内容显示 16011.5 在Angular项目中开始开发 16111.5.1 添加Bootstrap CSS框架 16111.5.2 创建数据模型 16111.5.3 创建模板和根组件 16411.5.4 配置根Angular模块 16511.6 本章小结 165第12章 使用数据绑定 16712.1 准备示例项目 16712.2 理解单向数据绑定 16812.2.1 理解绑定目标 16912.2.2 理解表达式 17012.2.3 理解括号 17112.2.4 理解宿主元素 17112.3 使用标准属性和属性绑定 17212.3.1 使用标准属性绑定 17212.3.2 使用字符串插入绑定 17312.3.3 使用元素属性绑定 17412.4 设置CSS类和样式 17412.4.1 使用类绑定 17512.4.2 使用样式绑定 17812.5 更新应用程序的数据 18012.6 本章小结 182第13章 使用内置指令 18313.1 准备示例项目 18313.2 使用内置指令 18513.2.1 使用ngIf指令 18513.2.2 使用ngSwitch指令 18713.2.3 使用ngFor指令 18913.2.4 使用ngTemplateOutlet指令 19513.3 理解单向数据绑定的限制 19713.3.1 使用幂等表达式 19713.3.2 理解表达式上下文 19913.4 本章小结 201第14章 使用事件和表单 20314.1 准备示例项目 20314.1.1 导入表单模块 20314.1.2 准备组件和模板 20414.2 使用事件绑定 20514.2.1 理解动态定义的属性 20614.2.2 使用事件数据 20814.2.3 使用模板引用变量 20914.3 使用双向数据绑定 21014.4 处理表单 21214.4.1 向示例应用程序添加表单 21314.4.2 添加表单数据验证 21414.4.3 验证整个表单 22114.5 使用基于模型的表单 22614.5.1 启用基于模型的表单功能 22614.5.2 定义表单模型类 22614.5.3 使用模型进行验证 22914.5.4 根据模型生成元素 23114.6 创建自定义表单验证器 23214.7 本章小结 234第15章 创建属性指令 23515.1 准备示例项目 23515.2 创建简单的属性指令 23715.3 在指令中访问应用程序数据 23915.3.1 读取宿主元素属性 23915.3.2 创建数据绑定输入属性 24115.3.3 响应输入属性的变化 24315.4 创建自定义事件 24415.5 创建宿主元素绑定 24715.6 在宿主元素上创建双向绑定 24815.7 导出指令用于模板变量 25015.8 本章小结 251第16章 创建结构型指令 25316.1 准备示例项目 25316.2 创建简单的结构型指令 25416.2.1 实现结构型指令类 25516.2.2 启用结构型指令 25716.2.3 使用结构型指令的简洁语法 25816.3 创建迭代结构型指令 25916.3.1 提供额外的上下文数据 26116.3.2 使用简洁的结构语法 26216.3.3 处理属性级数据变更 26316.3.4 处理集合级数据变更 26416.4 查询宿主元素内容 27116.4.1 查询多个子内容 27416.4.2 接收查询变更通知 27516.5 本章小结 276第17章 理解组件 27717.1 准备示例项目 27817.2 使用组件来组织应用程序 27817.2.1 创建新组件 27917.2.2 定义模板 28217.2.3 完成组件的重组 28917.3 使用组件样式 28917.3.1 定义外部组件样式 29017.3.2 使用高级样式特性 29117.4 查询模板内容 29617.5 本章小结 298第18章 使用和创建管道 29918.1 准备示例项目 29918.2 理解管道 30218.3 创建一个自定义管道 30318.3.1 注册自定义管道 30318.3.2 应用自定义管道 30418.3.3 组合管道 30518.3.4 创建非纯管道 30618.4 使用内置管道 30918.4.1 格式化数值 30918.4.2 格式化货币值 31118.4.3 格式化百分比 31318.4.4 格式化日期 31418.4.5 改变字符串大小写 31718.4.6 将数据序列化为JSON数据 31718.4.7 将数据数组切片 31818.5 本章小结 319第19章 使用服务 32119.1 准备示例项目 32119.2 理解对象分发问题 32219.2.1 问题的提出 32219.2.2 利用依赖注入将对象作为服务分发 32619.2.3 在其他构造块中声明依赖 33019.3 理解测试隔离问题 33519.4 完成服务的融入 33819.4.1 更新根组件和模板 33819.4.2 更新子组件 33919.5 本章小结 340第20章 使用服务提供程序 34120.1 准备示例项目 34220.2 使用服务提供程序 34320.2.1 使用类提供程序 34520.2.2 使用值提供程序 35020.2.3 使用工厂提供程序 35120.2.4 使用已有的服务提供程序 35320.3 使用本地提供程序 35420.3.1 理解单个服务对象的局限性 35420.3.2 在组件中创建本地提供程序 35520.3.3 理解服务提供程序的替代方案 35720.3.4 控制依赖解析 36020.4 本章小结 361第21章 使用和创建模块 36321.1 准备示例项目 36321.2 理解根模块 36521.2.1 理解imports属性 36621.2.2 理解declarations 属性 36621.2.3 理解providers属性 36721.2.4 理解bootstrap属性 36721.3 创建功能模块 36821.3.1 创建模型模块 36921.3.2 创建实用工具功能模块 37321.3.3 用组件创建一个功能模块 37721.4 本章小结 380第Ⅲ部分 Angular高级功能第22章 创建示例项目 38322.1 启动示例项目 38322.1.1 添加和配置Bootstrap CSS包 38322.1.2 创建项目结构 38322.2 创建模型模块 38422.2.1 创建产品数据类型 38422.2.2 创建数据源和存储库 38422.2.3 完成模型模块 38522.3 创建核心模块 38522.3.1 创建共享状态服务 38622.3.2 创建表格组件 38622.3.3 创建表单组件 38722.4.4 完成核心模块 38922.4 创建消息模块 38922.4.1 创建消息模型和服务 38922.4.2 创建组件和模板 39022.4.3 完成消息模块 39022.5 完成项目 39122.6 本章小结 392第23章 使用Reactive Extensions 39323.1 准备示例项目 39423.2 理解问题 39423.3 使用Reactive Extensions解决问题 39623.3.1 理解Observable 39623.3.2 理解Observer 39823.3.3 理解Subject 39923.4 使用async管道 40023.5 扩展应用程序功能模块 40223.6 更进一步 40423.6.1 过滤事件 40423.6.2 转换事件 40523.6.3 只接收不同的事件 40723.6.4 获取和忽略事件 40923.7 本章小结 410第24章 生成异步HTTP请求 41124.1 准备示例项目 41124.1.1 配置模型功能模块 41224.1.2 创建数据文件 41224.1.3 更新表单组件 41324.1.4 运行示例项目 41324.2 理解RESTful Web服务 41424.3 替换静态数据源 41424.3.1 创建新的数据源服务 41424.3.2 配置数据源 41624.3.3 使用REST数据源 41624.3.4 保存和删除数据 41724.4 加强HTTP请求 41924.5 生成跨域请求 42024.6 配置请求头 42224.7 处理错误 42424.7.1 生成用户可使用的消息 42524.7.2 处理错误 42624.8 本章小结 427第25章 路由与导航:第1部分 42925.1 准备示例项目 42925.2 开始学习路由 43125.2.1 创建路由配置 43125.2.2 创建路由组件 43325.2.3 更新根模块 43325.2.4 完成配置 43325.2.5 添加导航链接 43425.2.6 理解路由的效果 43625.3 完成路由实现 43725.3.1 在组件中处理路由变化 43825.3.2 使用路由参数 43925.3.3 在代码中导航 44425.3.4 接收导航事件 44525.3.5 删除事件绑定和支持代码 44625.4 本章小结 448第26章 路由与导航:第2部分 44926.1 准备示例项目 44926.2 使用通配符和重定向 45426.2.1 在路由中使用通配符 45426.2.2 在路由中使用重定向 45526.3 在组件内部导航 45626.3.1 响应正在发生的路由变化 45726.3.2 为活动路由设置不同样式的链接 45926.3.3 修复All按钮 46126.4 创建子路由 46226.4.1 创建子路由出口 46326.4.2 从子路由访问参数 46426.5 本章小结 467第27章 路由与导航:第3部分 46927.1 准备示例项目 46927.2 守卫路由 47027.2.1 使用解析器推迟导航 47027.2.2 避免带有守卫的导航 47627.3 动态加载功能模块 48427.3.1 创建一个简单的功能模块 48427.3.2 动态加载模块 48527.3.3 守卫动态模块 48827.4 指定命名出口 49027.4.1 创建附加的出口元素 49027.4.2 在使用多个出口的情况下导航 49127.5 本章小结 493第28章 使用动画 49528.1 准备示例项目 49628.1.1 禁用HTTP延迟 49628.1.2 简化表格模板和路由配置 49628.2 开始学习Angular动画 49828.2.1 启用动画模块 49828.2.2 创建动画 49928.2.3 应用动画 50128.2.4 测试动画效果 50328.3 理解内置的动画状态 50428.4 理解元素过渡 50528.4.1 为内置状态创建过渡 50528.4.2 控制动画的过渡 50628.5 理解动画样式组 51028.5.1 在可重用的分组中定义公共样式 51028.5.2 使用元素变形 51128.5.3 应用CSS框架样式 51228.6 本章小结 514第29章 Angular单元测试 51529.1 准备示例项目 51629.2 创建一个简单的单元测试 51729.3 使用Jasmine完成单元测试 51829.4 测试Angular组件 51929.4.1 使用TestBed类完成工作 51929.4.2 测试数据绑定 52229.4.3 测试带有外部模板的组件 52329.4.4 测试组件事件 52529.4.5 测试输出属性 52629.4.6 测试输入属性 52829.4.7 测试异步操作 52929.5 测试Angular指令 53129.6 本章小结 532
封面
书名:Web开发经典丛书ANGULAR 高级编程第3版
作者:[美]亚当·弗雷曼Adam Freema
页数:532
定价:¥138.0
出版社:清华大学出版社
出版日期:2018-06-01
ISBN:9787302529170
PDF电子书大小:65MB 高清扫描完整版
本文标题:《Web开发经典丛书ANGULAR 高级编程第3版》PDF下载
资源仅供学习参考,禁止用于商业用途,请在下载后24小时内删除!