Angular威教程+
揭秘Angular 2+
Ionic实战 基于AngularJS的移动混合应用开发
9787121292064 9787121306501 9787115451583
系列书名书 号出版日期页 数定 价状 态印刷方式
| 图灵程序设计丛书 |
| 978-7-115-45158-3 |
| 2017-04 |
| 512 |
| 109.00 元 |
| 正在印制 |
| 黑白 |
出版社 人民邮电出版社
~ Ari Lerner; Felipe Coury; Nate Murray; Carlos Taborda (作者) Nice Angular社区
【本书特色】
*模板功能强大+自定义指令+数据双向绑定+……=Angular
*资深全栈开发工程师经验总结
*雪狼带领的Nice Angular社区主力倾情翻译
*Google推荐阅读
【专业推荐】
“很高兴这本《Angular威教程》成为Angular中文资源的一部分,希望它能广受欢迎,给中国的Angular社区提供一份令人愉悦的学习资源,也希望它帮助更多工程师开始使用下一代Angular框架来开发应用。”
——Naomi Black,Google Angular项目经理兼主管
“作为一项开源技术和前沿Web开发框架,Angular持续吸引着中国区开发人员的关注。作为雪狼及其所属Nice Angular社区的集体工作成果,这本书是开源力量的又一次证明,证明这种热情、这种志愿精神确实可以帮助业界享受到全球新的开发技术。”
——栾跃,Google开发技术推广部大中华区主管
“作者们太棒了!如果没有这本书,真不知道我该怎么学习Angular。你们让学习并跟进Angular变得更简单了。再次感谢!”
——Jacob Cheriathundam,AccountsPRO公司CTO、高级开发工程师兼开发架构师
“我刚刚读完这本书,认为它是目前学习Angular的佳材料。”
——Jegor Uglov,BlaBlaBlogger产品主管
“如果你和我一样是一名经验丰富的开发者,并且在积极寻找关于Angular新信息的高效来源,那就别再找了!这本书就是目前棒的参考资料,简洁易懂、结构合理。”
——Frederic Filiatrault,TEKsystem公司高级软件工程师
“我在书中获取了大量有价值的信息,而这是在其他网络资源中无法做到的。在我深入这些前沿工具和主题的时候,这本书给了我极大帮助。”
——Sean McGill,Anexinet公司高级顾问
【内容摘要】
本书堪称Angular领域的里程碑式著作,涵盖了关于Angular的几乎所有内容。对于没有经验的人,本书平实、通俗的讲解,递进、严密的组织,可以让人毫无压力地登堂入室,迅速领悟新一代Web应用开发的精髓。如果你有相关经验,那本书对Angular概念和技术细节的全面剖析,以及引人入胜、切中肯綮的讲解,将帮助你彻底掌握这个框架,在自己职业技术修炼之路上更进一步。
本书的读者对象为所有想要理解和学习Angular的前端开发人员。
【作者介绍】
Ari Lerner
全栈工程师,拥有多年Angular经验,自办并运营Angular电子报ng-newsletter.com,在著名硅谷工程师培训学校Hack Reactor担任AngularJS讲师。Fullstack.io创始人。
Felipe Coury
Gistia Labs联合创始人兼CTO。
Nate Murray
全栈工程师,曾任职于IFTTT,拥有数据挖掘和增量Web服务等方面的背景。
Carlos Taborda
Gistia Labs联合创始人兼主管。
揭秘Angular 2
谷歌官方指定参考 彻底拥抱新版 案例|源码|特性全部基于2.0 原理扎实|讲解深入|实战丰富 著
定价 99元 - 出版社:
- ISBN:9787121306501
- 版次:1
- 商品编码:12027521
- 品牌:
- 包装:平装
- 开本:16开
- 出版时间:2017-01-01
- 用纸:胶版纸
- 页数:504
编辑推荐
√ 位列谷歌推荐参考资料列表,Google公司、Angular团队及开发者社区联合力荐。
√ 目前市面上少有的基于Angular 2、系统全面介绍这一技术方方面面的书籍。
√ 本书作者团队从Angular早期版本问世以来即投入生产实践,积累丰富实战经验。
√ 难能可贵的ng2原创精品,国内一线前端团队及技术社区资深专家集体亮相盛赞。
内容简介
《揭秘Angular 2》一部分从前端的故事起点说起,然后对 Angular 以及 TypeScript 进行了简单的介绍,接着通过一个通讯录例子让读者快速入门 Angular 的开发;第二部分则深入讲解了 Angular 架构以及 Angular 核心内容,包括组件、模板、指令、服务、依赖注入、路由以及测试,此外,在相应的章节里还补充说明了譬如变化监测的核心 Zones(第 6 章)、双向绑定的原理(第 7 章)、RxJS(第 9 章)等关键内容;第三部分则通过问卷调查系统来指引读者进行 Angular 项目的实战。
作者简介
广发证券互联网金融技术团队,是Angular早期坚定的践行者。作为全新一代的证券业IT研发组织,团队致力于用新的技术打造行业方案、支持业务创新。
我们热爱开源技术、信奉敏捷方法、编写优雅代码、关注用户体验,我们喜欢互联网工程师文化,我们在技术创新中寻找到无穷乐趣。
精彩书评
当Angular还在alpha版本的时候,本书作者所在团队就已在产品里使用。几年时间一路跟下来,踩过很多坑,收获更多。这保证了本书满满地全是干货,值得仔细阅读。
——大漠穷秋 Google Angular 中国开发者PM
在前端规模化时代做开发是件幸福的事。几年前似乎没有太多选择,大多用 jQuery 搞定各种浏览器上的坑,以简陋的“粉笔”在网页上“涂鸦”。如今又一下子拥有太多选择,React、Vue、Angular...我不是其中任何一个流行的(和不那么流行的)框架的死忠粉,在工作中会根据适合的情况选用它们。很高兴本书不是死板地介绍特性和罗列 API,而是通过实际例子帮助读者理解 Angular 的架构和设计思想。跟着作者的思路走一遍,前端技能会有实质提升,而不仅是“学会使用” Angular。我们需要掌握框架的灵魂,而不是成为它的奴隶。
——月影 360奇舞团负责人
广发证券互联网技术团队是一个活跃的技术团队,近几年译过大量Angular的文章,并在实际业务中将Angular付诸实践,积累了很多经验,同时也促进了团队成员对Angular的深入理解。Angular是较早出现的具有颠覆性的Web前端框架,在推出之初就受到广泛关注,并快速发展起来,给我们带来一些新的理念。相信会有更多人因为这本书而更加全面深入的了解Angular!
——于涛Kinvix 腾讯Alloyteam负责人
本应快速发展的Angular 2 ,因遭遇 React 当红和 Vue 崛起而没能像1.x一样快速流行。但还是有一些团队,在自己的业务里找到实践空间,用它来解决实际问题。从技术角度来看,它丝毫不逊色于竞争对手:与 TypeScript 的结合、对大型架构的支持让它在企业级开发中拥有非常好的空间。
希望大家不要囿于门户之见,用这本书来开始了解这门有价值的技术。
——程劭非 @winter
Angular 2 与 1.x 版本有很大不同,以组件化为核心理念,整合可选的开发语言、可配置的变更检测策略、样式封装机制,形成一套适应于企业应用开发的框架。现在,这个领域的开发者,终于迎来一本适合自己的书。
——徐飞 知名前端架构师
本书把广发证券前端团队对 Angular 2 框架基础的理解和zui佳实践,用不拖沓的方式传递给读者,值得一读。
——sofish 饿了么大前端负责人
开发者真正了解所选框架并能结合工作场景,才能享受其带来的效率、性能提升。本书覆盖基础、架构与应用,从能做什么讲到为什么这么做,对将或已选择Angular的开发者极有裨益。
——吴天豪 天猫前端技术专家
本书从概念到实际项目,从 API 到架构,详细介绍了 TypeScript 和 Angular 的开发经验,是学习Angular的上佳选择。
——曾探 腾讯高级工程师
目录
一部分入门篇
1 前端风云 2
1.1 故事的起点2
1.2 AJAX 王者归来3
1.3 工具库的流行3
1.4 百家争鸣3
1.5 走进前端新时代4
1.6 小结6
2 Angular 简介7
2.1 历史回顾7
2.1.1 AngularJS 1.x 起源7
2.1.2 AngularJS 1.x 迭代之路8
2.1.3 初生的Angular 2 9
2.1.4 快速发展的Angular 2 10
2.1.5 开发语言之选11
2.2 Angular 2 简述12
2.2.1 核心概念12
2.2.2 平台简介14
2.2.3 平台亮点16
2.3 小结17
3 TypeScript 入门18
3.1 TypeScript 概述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.8 null 和undefined 22
3.2.9 void 类型23
3.2.10 never 类型24
3.3 声明和解构24
3.3.1 let 声明25
3.3.2 const 声明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.10 TypeScript 周边54
3.10.1 编译配置文件54
3.10.2 声明文件55
3.10.3 编码工具56
3.10.4 展望未来57
3.11 小结57
4 快速入门 58
4.1 Hello World 例子58
4.1.1 准备工作58
4.1.2 搭建步骤59
4.2 通讯录例子66
4.2.1 背景介绍66
4.2.2 架构设计68
4.3 小结74
第二部分深入篇
5 Angular 架构总览 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.3 Angular 的组件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 深入理解Zones 149
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.1 NgClass 170
7.3.2 NgStyle 170
7.3.3 NgIf 171
7.3.4 NgSwitch 172
7.3.5 NgFor 172
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.3 NgIf 指令原理228
8.4 扩展阅读231
8.5 小结235
9 服务与RxJS 237
9.1 Angular 服务237
9.1.1 概述237
9.1.2 使用场景238
9.2 HTTP 服务242
9.2.1 AJAX 介绍243
9.2.2 JSONP 介绍249
9.2.3 HttpModule 250
9.3 响应式编程254
9.3.1 概述254
9.3.2 ReactiveX 256
9.4 RxJS 258
9.4.1 创建Observable 对象258
9.4.2 使用RxJS 处理复杂场景258
9.4.3 RxJS 和Promise 的对比259
9.4.4 “冷”模式下的Observable 260
9.4.5 RxJS 中的Operator 261
9.4.6 Angular 中的RxJS 265
9.5 小结269
10 依赖注入 270
10.1 依赖注入介绍271
10.2 Angular 依赖注入274
10.2.1 概述274
10.2.2 在组件中注入服务276
10.2.3 在服务中注入服务278
目录xvii
10.2.4 在模块中注入服务280
10.2.5 层级注入282
10.2.6 注入到派生组件286
10.2.7 限定方式的依赖注入288
10.3 Provider 292
10.3.1 概述292
10.3.2 Provider 注册方式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.1 HashLocationStrategy 介绍305
11.3.2 PathLocationStrategy 介绍306
11.4 路由跳转307
11.4.1 使用指令跳转308
11.4.2 使用代码跳转310
11.5 路由参数312
11.5.1 Path 参数312
11.5.2 Query 参数315
11.5.3 Matrix 参数317
11.6 子路由和附属Outlet 317
11.6.1 子路由317
11.6.2 附属Outlet 319
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.3 Jasmine 介绍334
12.2.4 Karma 介绍338
12.2.5 Karma 结合Jasmine 测试339
12.3 Angular 单元测试343
12.3.1 概述343
12.3.2 独立单元测试348
12.3.3 测试工具集352
12.4 端到端测试360
12.4.1 概述360
12.4.2 Protractor 介绍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.2 UI 样式库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
| 著 者: |
| 作 译 者: |
| 出版时间:2016-06 | 千 字 数:342 | | 版 次:01-01 | 页 数:288 | | 开 本:16开 | | 装 帧: | | I S B N :9787121292064 | | | 换 版: | |
| 所属分类: >> >> 网络与互联网 |
| 纸质书定价:¥75.0 |
Ionic是近几年很火的一项跨平台开发技术。Ionic大的亮点是集成了Angular和Cordova,对于有开发经验的前端工程师来说上手难度大大降低,并且能直接使用现有的大量第三方库和框架。本书是一本详尽的 Ionic实战教程,不仅告诉你“怎么做”,还告诉你“为什么”,这正是大部分入门书籍所欠缺的。无论你是否有相关开发经验,这本书都可以帮助你快速掌握Ionic。
技术浪潮中的前端新星:精选 Web 前端开发经典指南 在这个日新月异的数字时代,Web 前端技术的发展速度令人目眩,新的框架、工具和设计模式层出不穷。对于每一位渴望在前端领域深耕的开发者而言,掌握核心技术、理解发展脉络、并能灵活运用最新工具,是成功的关键。本套精心遴选的图书,旨在为你构建一个扎实、全面且富有前瞻性的前端知识体系,助你驾驭这场技术浪潮。 第一卷:深入理解现代 JavaScript 核心概念与高级特性 在深入学习任何前端框架之前,对 JavaScript 语言本身的透彻理解是不可或缺的基石。本卷精选的图书,将带你从 JavaScript 的基础语法和核心概念出发,逐步迈入其高级特性和现代演进。 深入 ES6+ 时代: 我们将详细剖析 ECMAScript 6(ES6)及后续版本引入的诸多革命性特性。这包括但不限于: 块级作用域与 `let`、`const`: 理解它们如何解决 `var` 带来的作用域混乱问题,以及在实际开发中何时使用它们。 箭头函数: 掌握其简洁的语法,以及与普通函数在 `this` 绑定上的根本区别,并学会如何利用它们编写更具可读性的代码。 解构赋值: 无论是数组解构还是对象解构,都将为你提供一种优雅的方式来提取和赋值数据,显著提升代码效率。 模板字符串: 告别繁琐的字符串拼接,利用模板字符串实现更直观、更易于维护的多行字符串和变量嵌入。 类(Classes): 深入理解 ES6 提供的面向对象编程语法糖,学习如何创建构造函数、定义方法、实现继承,为构建更复杂的应用打下基础。 模块化(Modules): 掌握 `import` 和 `export` 的使用,理解模块化开发的优势,以及如何在项目中组织和管理代码。 Promise: 彻底解决“回调地狱”问题,学习如何使用 Promise 进行异步操作,理解其链式调用、错误处理机制,以及如何构建更健壮的异步代码。 Async/Await: 在 Promise 的基础上,进一步简化异步编程,通过同步的风格编写异步代码,大幅提升代码的可读性和可维护性。 迭代器(Iterators)与生成器(Generators): 了解它们的工作原理,以及如何创建自定义的可迭代对象,实现更灵活的数据遍历和处理。 Proxy 与 Reflect: 探索 JavaScript 元编程的强大能力,学习如何拦截和自定义对象的行为,实现数据校验、懒加载等高级功能。 JavaScript 引擎的奥秘: 除了语言特性,我们还将触及 JavaScript 引擎的工作原理。 事件循环(Event Loop): 深入理解 JavaScript 的异步执行机制,包括宏任务(Macrotasks)和微任务(Microtasks)队列,以及它们如何协同工作。 内存管理与垃圾回收: 了解 JavaScript 的内存分配机制,以及垃圾回收器的基本工作原理,帮助你写出更高效、更不容易出现内存泄漏的代码。 作用域链与闭包(Closures): 再次巩固作用域的概念,并深入探讨闭包的强大之处,理解它们在数据封装、函数工厂、柯里化等场景下的应用。 性能优化与最佳实践: 本卷也将强调编写高质量、高性能 JavaScript 代码的重要性。 代码风格与规范: 介绍 industry-standard 的代码风格指南,如 Airbnb JavaScript Style Guide,并推荐使用 ESLint 等工具进行静态代码检查。 常见性能陷阱与优化技巧: 识别并规避 JavaScript 开发中的常见性能瓶颈,学习如何优化 DOM 操作、减少重绘与回流、以及合理使用缓存等。 调试技巧: 掌握浏览器开发者工具的强大调试功能,学会如何设置断点、查看变量、分析调用栈,快速定位和解决 bug。 第二卷:掌握 React.js:声明式 UI 的强大力量 React.js 作为当今最流行、最具影响力的前端 JavaScript 库之一,以其声明式的编程范式、组件化的开发模式以及高效的渲染机制,彻底改变了 Web 应用的构建方式。本卷将带你全面掌握 React.js 的核心概念和实际应用。 React 的核心思想: 声明式编程(Declarative Programming): 理解 React 如何让你描述 UI 的最终状态,而无需关心如何一步步达到这个状态。 组件化开发(Component-Based Development): 学习如何将复杂的 UI 拆分成独立的、可复用的组件,构建可维护、可扩展的应用。 虚拟 DOM(Virtual DOM): 深入理解 React 如何通过虚拟 DOM 实现高效的 UI 更新,避免不必要的 DOM 操作,显著提升页面渲染性能。 核心 API 与概念: JSX(JavaScript XML): 掌握 JSX 语法,学习如何将 HTML 结构嵌入到 JavaScript 代码中,以及 JSX 如何被编译成 JavaScript。 Props(Properties): 理解 Props 如何作为组件之间数据传递的单向通道,以及如何利用 Props 构建灵活的组件。 State(状态): 掌握 State 的概念,理解它如何表示组件的内部数据,以及如何通过 `setState` 更新 State 并触发组件重新渲染。 生命周期(Lifecycle Methods): 深入学习 React 组件的生命周期,理解各个生命周期方法的调用时机和作用,以及如何利用它们执行初始化、数据获取、 DOM 操作等任务。 事件处理(Event Handling): 学习如何在 React 中处理用户交互事件,理解合成事件(Synthetic Event)机制。 条件渲染(Conditional Rendering): 掌握多种条件渲染的实现方式,以便根据不同的状态动态显示 UI。 列表与 Keys(Lists and Keys): 学习如何高效地渲染列表数据,并理解 Keys 在列表更新中的重要作用。 Hooks 时代:函数组件的崛起: useState Hook: 学习如何在使用函数组件时管理组件状态。 useEffect Hook: 理解其替代类组件中 `componentDidMount`、`componentDidUpdate`、`componentWillUnmount` 等生命周期方法的强大能力,以及如何处理副作用。 useContext Hook: 学习如何利用 Context API 在组件树中共享全局数据,而无需手动传递 Props。 useReducer Hook: 了解如何利用 Reducer 管理更复杂的组件状态逻辑,类似于 Redux 的模式。 自定义 Hooks: 学习如何提取可复用的逻辑为自定义 Hook,进一步提升代码的模块化和复用性。 进阶主题与生态系统: React Router: 学习如何使用 React Router 实现客户端路由,构建单页应用(SPA)的导航功能。 状态管理(State Management): 探讨更复杂应用中的状态管理方案,如 Context API 配合 `useReducer`,或集成 Redux、Zustand 等第三方库。 性能优化: 学习 React 的性能优化技巧,如 `React.memo`、`useCallback`、`useMemo`,以及代码分割(Code Splitting)和懒加载(Lazy Loading)。 测试(Testing): 介绍 React 应用的测试方法,包括单元测试(Unit Testing)和集成测试(Integration Testing),推荐使用 Jest 和 React Testing Library。 服务端渲染(Server-Side Rendering - SSR): 了解 SSR 的优势,以及如何使用 Next.js 等框架实现 SSR。 第三卷:构建高性能、可伸缩的后端应用:Node.js 与 Express.js 实战 Web 应用的强大之处不仅在于其前端的交互性和美观性,更在于其背后稳定、高效的服务器端支持。Node.js 的出现,使得 JavaScript 能够运行在服务器端,极大地统一了前后端开发语言。本卷将带你深入 Node.js 的核心,并结合 Express.js 框架,构建 robust 的后端服务。 Node.js 核心理念与架构: 事件驱动、非阻塞 I/O: 深入理解 Node.js 的异步 I/O 模型,这是其高并发性能的关键。 事件循环(Event Loop): 再次复习事件循环机制,了解其在 Node.js 后端环境中的具体体现,以及如何处理回调、Promise 和 async/await。 模块系统(Module System): 掌握 CommonJS 模块规范,学习如何使用 `require` 和 `module.exports` 来组织和加载模块。 流(Streams): 学习如何使用流来高效处理大数据,避免一次性将所有数据加载到内存中。 Buffer: 理解 Buffer 的作用,以及如何在 Node.js 中处理二进制数据。 文件系统(File System - `fs` module): 掌握 Node.js 内建的 `fs` 模块,实现文件的读取、写入、删除等操作。 HTTP 模块: 学习如何使用 Node.js 的 `http` 模块创建基本的 HTTP 服务器和客户端。 Express.js:Node.js 的 Web 应用框架: 路由(Routing): 学习如何定义 API 路由,处理不同的 HTTP 请求方法(GET, POST, PUT, DELETE 等)和 URL 路径。 中间件(Middleware): 这是 Express.js 的核心概念。我们将详细讲解中间件的原理,以及如何编写和使用各种中间件,例如: 请求日志中间件: 记录所有进来的请求信息。 Body-parsing 中间件: 解析 POST 请求中的请求体数据(如 JSON、表单数据)。 身份验证中间件: 保护 API 接口,验证用户身份。 错误处理中间件: 统一处理应用中的错误。 模板引擎(Template Engines): 学习如何集成 EJS、Pug (Jade) 等模板引擎,实现服务器端渲染 HTML,动态生成页面。 RESTful API 设计: 遵循 RESTful 原则,设计优雅、标准的 API 接口。 数据持久化: 数据库连接: 学习如何连接各种类型的数据库,包括关系型数据库(如 PostgreSQL, MySQL)和 NoSQL 数据库(如 MongoDB)。 ORM/ODM 库: 介绍并实践 Sequelize (ORM for SQL) 或 Mongoose (ODM for MongoDB) 等库,简化数据库操作。 安全性: 输入验证(Input Validation): 防止恶意输入,确保数据的有效性。 跨站请求伪造(CSRF)防护。 跨站脚本(XSS)防护。 身份验证与授权(Authentication & Authorization): 使用 JWT (JSON Web Tokens) 等技术实现用户登录和权限控制。 API 文档生成: 学习使用 Swagger/OpenAPI 等工具为你的 API 生成文档。 部署与扩展: PM2: 学习使用 PM2 管理 Node.js 进程,实现进程守护、负载均衡等功能。 Docker 容器化: 了解如何使用 Docker 将你的 Node.js 应用容器化,方便部署和管理。 CI/CD 流程: 简要介绍持续集成/持续部署的理念,以及如何将 Node.js 应用集成到 CI/CD 流程中。 总结: 本套图书组合,从 JavaScript 语言的底层原理到现代框架的使用,再到服务器端技术的实践,为你提供了一个全面、深入的学习路径。无论你是初涉前端开发的学习者,还是希望提升技能的资深开发者,都能从中获得宝贵的知识和实用的技能,让你在不断变化的技术浪潮中,自信地构建出色的 Web 应用。