前言 Angular有着广泛的应用。本书主要介绍Angular的应用开发,不涉及Angular.js(或称为AngularJS)的应用开发。 Angular应用开发的入门学习偏难的原因有四个方面: 其一,Angular应用开发时涉及的概念众多(包括组件和模板、样式、指令、服务和依赖注入、Provider、路由、表单、模块、装饰器、响应式编程等)且语法有差异,这些概念、应用开发思想与后端的应用开发有许多相似之处; 其二,Angular应用开发时重视模块化开发、设计模式等思想的落实,一个功能点(如组件)包括多个文件(如组件、模板、样式、路由、模块、测试等); 其三,Angular是用TypeScript实现的,Angular的应用开发也使用TypeScript,TypeScript在JavaScript基础上增加了类型系统,语法更为严格,基于TypeScript的Angular应用开发的初学者更容易出错; 其四,Angular的类库和工具丰富,即Angular应用开发具有一站式的特点,但是官方文档略显简洁。 Angular应用开发的学习门槛较高的四个原因如下。其一,丰富的概念对于从后端转入前端的开发人员很便利,Angular应用开发人员转到后端开发也很容易,众多概念与后端开发相似的特点便于前后端的分离和整合开发; 其二,模块化开发和设计模式等思想的落实,便于大型项目的开发,便于团队分工和合作,便于测试,便于提高开发的质量和效率; 其三,TypeScript增加类型系统后能提高代码质量,可以帮助学习者在学会Angular的同时学会TypeScript的应用开发,提升开发技能; 其四,Angular的丰富类库和工具,使得Angular具备完备性(一站式的特点),仅仅用Angular就能较好地进行前端开发,不需要面对同一生态中不同实现(或工具)的问题。 针对Angular应用开发的四个特点,为了降低Angular应用开发的学习难度,本书先针对各个概念由浅入深、按照开发的先后次序组织内容。为了降低学习的难度和精简篇幅,为了减少一个功能点的相关文件数量,本书将模板、样式内容并入组件文件,将路由并入模块文件。本书的TypeScript代码均进行了测试,学习者按照本书的示例来学习Angular和TypeScript的应用开发可以减少出错,并熟悉Angular和TypeScript的应用场景,在熟悉Angular和TypeScript之后就可以独立处理开发中的错误。本书按照开发的需要和学习的难度,有选择、有针对性地介绍Angular的类库和工具。另外,虽然Angular应用开发学习入门偏难,但学会之后,再学习基于JavaScript或TypeScript等应用框架或其他前端框架就可以事半功倍。 全书共有16章。 第1章Angular应用开发基础,包括Angular简介、Angular应用项目说明、Angular应用开发步骤、 TypeScript基础; 第2章模板,包括模板概述、模板绑定、模板变量和模板输入变量、模板的基础应用、模板的综合应用开发; 第3章指令,包括指令概述、 内置属性型指令、内置结构型指令、自定义属性型指令、自定义结构型指令、指令的基础应用、指令的综合应用开发; 第4章组件,包括组件概述、组件样式及其应用、组件生命周期、组件生命周期的综合应用、组件之间的交互及其应用、Angular元素及其应用; 第5章组件的组合、分解及其应用,包括内容投影及其应用、视图封装及其应用、依赖注入及其应用; 第6章路由及其应用,包括路由概述、路由的应用开发; 第7章表单及其应用,包括表单概述、响应式表单、表单验证及实现、动态表单及其构建、表单的综合应用开发; 第8章HTTP客户端服务及其应用,包括HTTP 客户端服务、 拦截机制、HTTP客户端服务的应用、拦截器的应用开发; 第9章国际化及其应用,包括国际化概述、翻译、将翻译结果合并到应用中、可选的国际化实践、国际化应用; 第10章动画及其应用,包括动画概述、转场动画、路由转换动画、动画的应用开发; 第11章PWA、Service Worker、Web Worker,包括PWA概述、Service Worker概述、生产环境下的Service Worker、Service Worker 配置、PWA的应用开发; 第12章测试及其应用,包括测试概述、TestBed的应用开发、服务测试应用、组件测试应用、Jasmine应用、路由测试应用、异步测试应用、Mock测试应用、测试综合应用; 第13章高阶技术,包括 Angular统一平台 、Angular CLI、 Angular语言服务、AOT编译器、Angular应用的运行、Angular库的开发、原理图、Angular发布信息; 第14章最佳实践,包括安全的最佳实践、无障碍性、保持最新和属性绑定、惰性加载、 令牌、安全的应用开发、无障碍性的应用开发、属性绑定的应用、惰性加载特性模块的应用; 第15章综合案例,包括英雄信息、简易通讯录; 第16章整合开发,包括与Ant Design of Angular的整合开发、与Spring Boot的整合开发。 本书特色 (1) 易理解。本书避免对官方文档的简单引用,按照学习先后顺序和开发步骤由浅入深地编排知识点,适合于自学和 高等院校课程教学的需要。 (2) 内容新。本书使用的Angular版本是14.0.0版,涵盖了新内容。 (3) 全栈式。本书大多引用官方文档的内容; 还介绍了与Ant Design of Angular的整合开发,与Spring Boot(使用MySQL 8.x)的整合开发; 得益于Angular自身的完备性,参考本书可以较全面地利用Angular进行前端开发。 (4) 示例多。实战案例丰富,涵盖26个知识点示例、两个整合开发案例、两个完整项目案例。 配套资源 为便于教与学,本书配有微课视频(128分钟)、源代码、教学课件、教学大纲、习题答案、教学进度安排。 (1) 获取微课视频方式: 读者可以先扫描本书封底的文泉云盘防盗码,再扫描书中相应的视频二维码,观看视频。 (2) 获取源代码和彩色图片方式: 先扫描本书封底的文泉云盘防盗码,再扫描下方二维码,即可获取。 源代码 源代码使用说明 源代码和数据库 使用说明 (3) 其他配套资源可以扫描本书封底的“书圈”二维码下载。 读者对象 本书主要面向希望学习Angular应用开发的初学者(特别适合高等院校的在读学生)、从事高等教育的专任教师以及广大从事Web前端开发的专业人员。 本书的主要内容参考了Angular官方文档,在参考文献中已经列出。在此向Angular开发者和官方文档的作者表示衷心的感谢和深深的敬意。本书的编写还参考了其他相关资料,在此表示衷心的感谢。 限于时间仓促和个人水平有限,书中难免存在疏漏之处,欢迎读者批评指正。 编者2023年1月