您好,欢迎光临有路网!
Angular高级编程(第4版)
QQ咨询:
有路璐璐:

Angular高级编程(第4版)

  • 作者:(英) 亚当·弗里曼(Adam Freeman)著 陈磊 译
  • 出版社:清华大学出版社
  • ISBN:9787302569572
  • 出版日期:2021年01月01日
  • 页数:688
  • 定价:¥158.00
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    主要内容 ● 从架构的角度理解MVC模式 ● 使用Angular创建丰富、动态的Web应用程序客户端 ● 使用ng工具构建Angular项目 ● 扩展和自定义Angular ● 如何对Angular项目进行单元测试
    目录
    第Ⅰ部分 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

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外