揭秘Angular 2 高清完整版带书签 高清 完整版
目录 第一部分入门篇 1前端风云2 1.1故事的起点2 1.2AJAX王者归来3 1.3工具库的流行3 1.4百家争鸣3 1.5走进前端新时代4 1.6小结6 2Angular简介7 2.1历史回顾7 2.1.1AngularJS1.x起源7 2.1.2AngularJS1.x迭代之路8 2.1.3初生的Angular29 2.1.4快速发展的Angular210 2.1.5开发语言之选11 2.2Angular2简述12 2.2.1核心概念12 2.2.2平台简介14 2.2.3平台亮点16 2.3小结17 3TypeScript入门18 3.1TypeScript概述18 3.1.1概述18 3.1.2安装19 3.2基本类型20 3.2.1布尔类型20 3.2.2数字类型20 3.2.3字符串类型21 3.2.4数组类型21 3.2.5元组类型21 3.2.6枚举类型21 3.2.7任意值类型22 3.2.8null和undefined22 3.2.9void类型23 3.2.10never类型24 3.3声明和解构24 3.3.1let声明25 3.3.2const声明26 3.3.3解构26 3.4函数28 3.4.1函数定义28 3.4.2 可选参数28 3.4.3默认参数29 3.4.4剩余参数30 3.4.5函数重载30 3.4.6箭头函数31 3.5类32 3.5.1类的例子32 3.5.2继承与多态32 3.5.3修饰符33 3.5.4参数属性35 3.5.5静态属性35 3.5.6抽象类36 3.6模块37 3.6.1概述37 3.6.2模块导出方式37 3.6.3模块导入方式38 3.6.4模块的默认导出39 3.6.5模块设计原则40 3.7接口42 3.7.1概述42 3.7.2属性类型接口42 3.7.3函数类型接口43 3.7.4可索引类型接口44 3.7.5类类型接口44 3.7.6接口扩展45 3.8装饰器46 3.8.1概述46 3.8.2方法装饰器47 3.8.3类装饰器48 3.8.4参数装饰器50 3.8.5属性装饰器51 3.8.6装饰器组合51 3.9泛型53 3.10TypeScript周边54 3.10.1编译配置文件54 3.10.2声明文件55 3.10.3编码工具56 3.10.4展望未来57 3.11小结57 4快速入门58 4.1HelloWorld例子58 4.1.1准备工作58 4.1.2搭建步骤59 4.2通讯录例子66 4.2.1背景介绍66 4.2.2架构设计68 4.3小结74 第二部分深入篇 5Angular架构总览76 5.1核心模块介绍76 5.1.1组件77 5.1.2模板81 5.1.3指令82 5.1.4服务83 5.1.5依赖注入84 5.1.6路由86 5.2应用模块88 5.3源码结构介绍91 5.4小结93 6组件94 6.1概述94 6.1.1模块化介绍94 6.1.2组件化标准96 6.1.3Angular的组件100 6.2组件基础100 6.2.1创建组件的步骤100 6.2.2组件基础构成102 6.2.3组件与模块108 6.3组件交互113 6.3.1组件的输入输出属性114 6.3.2父组件向子组件传递数据115 6.3.3子组件向父组件传递数据120 6.3.4其他组件交互方式122 6.4组件内容嵌入124 6.5组件生命周期128 6.5.1概述128 6.5.2生命周期钩子128 6.6变化监测131 6.6.1数据变化的源头131 6.6.2变动通知机制132 6.6.3变化监测的响应处理133 6.7扩展阅读139 6.7.1元数据一览表139 6.7.2元数据说明139 6.7.3深入理解Zones149 6.8小结155 7模板156 7.1模板语法概览156 7.2数据绑定158 7.2.1概述158 7.2.2插值160 7.2.3模板表达式160 7.2.4属性绑定162 7.2.5事件绑定165 7.2.6双向数据绑定168 7.2.7输入和输出属性169 7.3内置指令170 7.3.1NgClass170 7.3.2NgStyle170 7.3.3NgIf171 7.3.4NgSwitch172 7.3.5NgFor172 7.4表单173 7.4.1模板表单例子174 7.4.2表单指令175 7.4.3自定义表单样式184 7.4.4表单校验185 7.5管道189 7.5.1管道介绍190 7.5.2内置管道190 7.5.3自定义管道196 7.5.4管道的变化监测198 7.6扩展阅读202 7.6.1安全导航操作符202 7.6.2双向绑定的原理202 7.7小结205 8指令206 8.1概述206 8.1.1指令分类208 8.1.2内置指令210 8.2自定义属性指令219 8.2.1实现属性指令219 8.2.2为指令绑定输入221 8.2.3响应用户操作223 8.3自定义结构指令224 8.3.1实现结构指令224 8.3.2模板标签与星号前缀227 8.3.3NgIf指令原理228 8.4扩展阅读231 8.5小结235 9服务与RxJS237 9.1Angular服务237 9.1.1概述237 9.1.2使用场景238 9.2http服务242 9.2.1AJAX介绍243 9.2.2JSONP介绍249 9.2.3httpModule250 9.3响应式编程254 9.3.1概述254 9.3.2ReactiveX256 9.4RxJS258 9.4.1创建Observable对象258 9.4.2使用RxJS处理复杂场景258 9.4.3RxJS和Promise的对比259 9.4.4“冷”模式下的Observable260 9.4.5RxJS中的Operator261 9.4.6Angular中的RxJS265 9.5小结269 10依赖注入.270 10.1依赖注入介绍271 10.2Angular依赖注入274 10.2.1概述274 10.2.2在组件中注入服务276 10.2.3在服务中注入服务278 10.2.4在模块中注入服务280 10.2.5层级注入282 10.2.6注入到派生组件286 10.2.7限定方式的依赖注入288 10.3Provider292 10.3.1概述292 10.3.2Provider注册方式293 10.4扩展阅读297 10.5小结299 11路由300 11.1概述300 11.2基本用法302 11.2.1路由配置302 11.2.2创建根路由模块303 11.2.3添加RouterOutlet指令303 11.3路由策略304 11.3.1HashLocationStrategy介绍305 11.3.2PathLocationStrategy介绍306 11.4路由跳转307 11.4.1使用指令跳转308 11.4.2使用代码跳转310 11.5路由参数312 11.5.1Path参数312 11.5.2Query参数315 11.5.3Matrix参数317 11.6子路由和附属Outlet317 11.6.1子路由317 11.6.2附属Outlet319 11.7路由拦截320 11.7.1激活拦截与反激活拦截321 11.7.2数据预加载拦截325 11.8模块的延迟加载327 11.8.1延迟加载实现328 11.8.2模块加载拦截329 11.9小结331 12测试332 12.1概述332 12.2单元测试333 12.2.1概述333 12.2.2常用测试框架334 12.2.3Jasmine介绍334 12.2.4Karma介绍338 12.2.5Karma结合Jasmine测试339 12.3Angular单元测试343 12.3.1概述343 12.3.2独立单元测试348 12.3.3测试工具集352 12.4端到端测试360 12.4.1概述360 12.4.2Protractor介绍361 12.5小结364 第三部分实战篇 13问卷调查系统简介366 13.1项目背景366 13.2主要特性367 13.2.1首页和帮助页369 13.2.2问卷编辑页369 13.2.3我的问卷页369 13.2.4用户管理页369 13.3产品设计369 13.4小结371 14项目起步372 14.1技术选型372 14.1.1前端脚手架372 14.1.2UI样式库373 14.1.3后端服务器374 14.2环境搭建374 14.2.1搭建脚手架374 14.2.2引入样式库377 14.2.3搭建后台环境378 14.3目录结构介绍380 14.4首页开发384 14.5小结388 15问卷编辑模块389 15.1概述389 15.1.1功能设计389 15.1.2数据模型391 15.2问卷编辑模块开发393 15.2.1问题选择组件394 15.2.2问题组件398 15.2.3问卷组件408 15.2.4问卷服务415 15.2.5问卷大纲422 15.3小结425 16我的问卷模块426 16.1问卷列表427 16.1.1问卷列表项428 16.1.2显示问卷列表429 16.1.3显示问卷详情431 16.2问卷操作433 16.2.1修改路由配置434 16.2.2发布后的问卷页面436 16.2.3问卷操作组件439 16.3小结442 17用户管理模块443 17.1开发简单注册页444 17.2表单控件组件446 17.2.1定义表单控件446 17.2.2校验表单控件447 17.2.3表单安全450 17.3用户注册功能开发451 17.3.1用户注册服务451 17.3.2组件的逻辑453 17.3.3注册接口开发455 17.4权限管理456 17.5小结460 18项目构建和最佳实践461 18.1项目构建461 18.1.1代码质量检查461 18.1.2测试463 18.1.3打包465 18.1.4容器化467 18.2最佳实践468 18.2.1单一职责468 18.2.2命名约定469 18.2.3编码约定471 18.2.4应用结构约定474 18.2.5组件相关约定475 18.2.6指令相关约定478 18.2.7服务相关约定478 18.2.8其他479 18.3小结480 《揭秘Angular 2》第一部分从前端的故事起点说起,然后对 Angular 以及 TypeScript 进行了简单的介绍,接着通过一个通讯录例子让读者快速入门 Angular 的开发;第二部分则深入讲解了 Angular 架构以及 Angular 核心内容,包括组件、模板、指令、服务、依赖注入、路由以及测试,此外,在相应的章节里还补充说明了譬如变化监测的核心 Zones(第 6 章)、双向绑定的原理(第 7 章)、RxJS(第 9 章)等关键内容;第三部分则通过问卷调查系统来指引读者进行 Angular 项目的实战。