迈向Angular 2:基于TypeScript的高性能SPA框架
  • 推荐0
  • 收藏2
  • 浏览1.1K

迈向Angular 2:基于TypeScript的高性能SPA框架

Minko Gechev (作者)  章小飞 (译者)

  • 书  号:978-7-121-29409-9
  • 出版日期:2016-08-08
  • 页  数:244
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 原书名: Switching to Angular 2
  • 原书号:9781785886201
  • 维护人:张春雨
本书由Angular之父Mi?ko Hevery作序,作者为Angular开发团队成员之一。基于对Angular 2架构和设计方面的深入理解,本书选材精准、内容实用。全书从一个小例子开始引导读者快速上手,详细介绍Angular 2带来的所有新特性,包括组件、指令、TypeScript、新的路由机制、管道、服务端渲染等。本书读者对象包括Angular 1.x的开发者、想直接从Angular 2开始入手的学习者,以及前端技术架构师等。
首著惊见 Angular之父作序力荐 颠覆性升级 TypeScript来袭
译者序
Angular 2的发布标志着这门框架已经走向成熟和稳定,正如官方申明所说:Angular 2的核心架构已经定型,不会再做颠覆性的设计。
然而,鉴于你们前端界“每隔6个月就重写一遍”的现状,我本人对以上申明持观望的态度。纵观当前市场上的所有前端框架,只有jQuery和ExtJS大体上做到了“核心架构不变”。
但是与其他所有前端框架相比,Angular 2有一点非常具有前瞻性,它是基于TypeScript开发的。JavaScript之父Brendan Eich对他自己发明的语言有一段经典的评价:
与其说我爱Javascript,不如说我恨它。它是C语言和Self语言一夜情的产物。18世纪英国文学家约翰逊博士说得好:它的优秀之处并非原创,它的原创之处并不优秀。
对于这段评价,只要写过JavaScript的人,一定会表示不能同意更多。JavaScript的灵活性、动态性,以及目前各种新标准的剧烈变革直接把学习成本推高了N个数量级,对于大规模的开发团队尤其如此。因此,Angular 2直接基于静态类型的TypeScript来进行开发,无疑是合适的,直接从语言层面上就把一些坑给填了,这是非常具有战略眼光的决策。对于有Java、C++,或者ActionScript背景的开发者来说,TypeScript的学习成本几乎为零,你只要花30分钟浏览一下大致的语言特性就能写得风生水起了。
在当前这个时间节点上,各种前端技术层出不穷,让人有目不暇接之感。从学习的角度而言,这是一种负担,但是这种状况同时也意味着大量的工作机会,毕竟沧海横流方显英雄本色。
大漠穷秋
2016-06-06

推荐序
Angular 2依然是Angular,只是更强大而已。它依然构建在那些相同的原则之上,这些原则也是你们热爱AngularJS的原因:构建单页应用的一种快速而强大的解决方案。在Angular 2中,应用将会运行得更加快速,对SEO和移动设备更加友好,并且是天然跨平台的。虽然Angular 2已经对AngularJS中的很多概念做出了大幅度的演进,但是仍然保留了上一个版本的设计哲学。
《迈向Angular 2:基于TypeScript的高性能SPA框架》一书完全可以佐证以上观点。所以,Minko的这本书将会成功地帮你把思维模式从AngularJS1.x切换到Angular 2。从你与Angular 2的初次邂逅直到最后,Angular的核心概念将会贯穿始终。这本指南将会帮你切换到用Angular做事的新方式上去。Minko将会引导你贯通所有变更的内容,包括引入的所有新特性:组件、指令、TypeScript、新的路由机制,以及开始使用Angular 2开发你的下一个项目时所需要的一切内容。
如今的Web开发领域日新月异,Angular 2接受了这一挑战,并且构建在AngularJS的遗产之上。因此,对Angular社区来说,出现高质量的学习资料是极其重要的,而Minko的这本书将会帮助Angular开发者迈出面向未来的第一步。
Mi?ko Hevery
AngularJS与Angular 2之父

序言
AngularJS是一个JavaScript开发框架,致力于让web应用开发变得更加简单。目前,它已经被应用在大规模、大流量的网站中,这些网站饱受性能低下、移植性差的困扰,同时还面临SEO不友好、复杂度大的问题。Angular 2改变了这一切。
它是一款非常现代的框架,可以利用它构建性能更高、健壮性更强的web应用。《迈向Angular 2:基于TypeScript的高性能SPA框架》是掌握Angular 2最快捷的方式,它将引领你进入Angular 2的全新世界。
读完本书,你将会具备利用Angular 2所提供的一系列新特性来快速有效地构建应用的能力。
本书内容
第1章 Angular 2快速上手:开启Angular 2新世界的旅程。这一章描述了框架设计决策背后的一些主要因素。我们将会看到形成这门框架的两种主要驱动力—web的当前状态以及前端框架的进化。
第2章 Augular 2应用的基础构件:简要介绍Angular 2引入的一些核心概念。我们将会探讨AngularJS 1.x所提供的基础构件与最近一个主版本之间的差异。
第3章 TypeScript速成:Angular 2是语言无关的,但是Google推荐大家利用TypeScript所带来的静态类型特性。在这一章中,你将会学习利用TypeScript开发Angular 2应用的所有必要语法!
第4章 Angular 2组件和指令入门:解释开发用户界面所需要的核心构件—Directive以及Component。我们将会深度解析视图封装、内容投影、输入输出、脏值检测等概念。同时还会讨论一些高级主题,例如:模板引用,以及使用不可变数据类型加快应用的运行速度。
第5章 Angular 2中的依赖注入:这一章将会全面解析这门框架中最强大的特性之一:依赖注入机制。它最初是由AngularJS 1.x引入的。我们可以利用这一特性来编写更加便于维护、测试,并且更易于理解的代码。在这一章结束的时候,我们将会理解如何在Service中定义业务逻辑,然后利用DI(依赖注入)机制把它和UI黏合到一起。我们还会解析一些更加高级的主题,例如:注射器的层级结构、配置provider等。
第6章 Angular 2中的路由和表单:这一章将会探索在开发实际应用的过程中如何使用用来维护form的新模块。我们将会实现一个页面,可以显示form中输入的值。最后,我们会利用基于组件的路由把各个单独的页面黏合成一个完整的应用。
第7章 详解管道以及与RESTful服务端之间的通信:深度解析路由和表单模块。这一章将会解析如何开发数据模型驱动型表单,以及如何定义参数化路由、子路由。我们还会解释HTTP模块,以及如何开发有状态和无状态管道。
第8章 开发体验与服务端渲染:探索开发Angular 2应用中的一些高级主题,例如:在WebWorker中运行应用,以及服务端渲染。在这一章中的第二部分,我们将会学习一些全新的开发工具,从而让日常开发工作更加轻松一些,例如:angular-cli、angular2-seed,以及解释热重载的概念等。
阅读准备
对于本书中的绝大多数实例,你需要:一个简单的文本编辑器或者IDE、装好Node.js和TypeScript、能上网,以及一个浏览器。
对于每一章所提供的实例代码,对应章节都会解释需要安装的软件。
目标读者
你想深入学习Angular 2吗?或许你想先评估一下最新的变更再决定是否跟进?如果是,那么《迈向Angular 2:基于TypeScript的高性能SPA框架》就是为你量身定制的。
为了能够充分理解本书内容,需要对AngularJS 1.x有基本的理解,同时需要对JavaScript非常熟悉。阅读本书不需要预先了解 Angular 2所引入的变更。

目录

序言 XV
第1章 Angular 2快速上手 1
Web的进化——新框架时代 2
ECMAScript的进化 2
Web Component 3
WebWorker 4
从AngularJS 1.x中学到的经验 5
Controller 6
Scope 7
依赖注入 7
服务端渲染 8
大规模应用 9
模板 10
脏值检测 12
本章小结 12
第2章 Augular 2应用的基础构件 14
Angular 2概念性简介 15
脏值检测 17
认识Angular 2中的组件 19
组件实战 20
Angular 2中的组件 22
管道 23
定义管道 24
脏值检测 25
传统的脏值检测 26
AngularJS 1.x中的脏值检测 27
增强AngularJS 1.x的脏值检测 29
理解服务 30
理解新的基于组件的路由机制 33
Angular 2中定义路由的语法 35
本章小结 36
第3章 TypeScript速成 37
TypeScript简介 37
编译时类型检查 38
文本编辑器和IDE的支持更好 38
TypeScript的更多特性 39
TypeScript用法 39
用npm安装TypeScript 40
运行我们的第一个TypeScript程序 40
TypeScript从ES2015和ES2016中引入的语法和特性 41
ES2015中的箭头函数 41
使用ES2015和ES2016中的类 43
定义在块级作用域中可见的变量 45
使用ES2016装饰器进行元编程 46
使用可配置的装饰器 47
使用ES2015编写模块化的代码 48
使用ES2015中的模块语法 49
利用隐式异步行为 50
使用别名 50
导入所有导出的模块 50
默认导出 51
ES2015模块加载器 52
ES2015和ES2016总结 52
发挥静态类型的优势 53
使用显式类型定义 53
理解原生类型 54
理解Object类型 55
定义类 58
使用访问修饰符 59
定义接口 61
使用TypeScript装饰器提升表现力 64
使用类型参数编写泛型代码 64
使用泛型函数 66
多重泛型 66
利用TypeScript的类型推断机制简化代码 67
最常见的类型 67
与上下文有关的类型推断 68
使用外部类型定义 68
使用预定义的外部类型定义 68
自定义外部类型 70
定义ts.d文件 72
本章小结 72
第4章 Angular 2组件和指令入门 74
Angular 2 Hello world! 75
配置开发环境 78
初始化项目仓库 78
Angular 2和TypeScript上手试玩 79
首页代码深度解析 80
Angular 2指令用法 81
ngFor 指令 83
改进了指令语法的语义 83
在模板内部定义变量 85
在模板里面使用语法糖 85
定义Angular 2指令 85
设置指令的输入 87
理解指令的构造函数 87
封装指令的更好方式 88
Angular 2内置指令的用法 89
组件视图封装简介 90
实现组件的控制器 90
处理用户交互 92
指令的输入和输出 93
找到指令的输入和输出 94
定义组件的输入和输出 95
传递输入与使用输出结果 97
事件冒泡 99
重命名指令的输入与输出 100
定义输入输出参数的另一种语法 101
详解Angular 2中的内容投影 102
Angular 2中的内容投影入门 102
投射多块内容 103
组件嵌套 105
ViewChildren和ContentChildren的用法 106
ViewChild与ContentChild 108
挂钩到组件的生命周期上 112
执行的顺序 114
用TemplateRef定义通用视图 115
理解并优化脏值检测机制 118
脏值检测器的执行顺序 118
脏值检测策略 120
利用不可变数据和OnPush策略提升性能 121
在Angular中使用不可变数据结构 122
本章小结 124
第5章 Angular 2中的依赖注入 125
为什么要依赖注入? 125
Angular 2中的依赖注入 126
Angular 2中DI的优点 127
配置注射器 127
使用生成的元数据解析依赖关系 129
初始化注射器 129
前向引用简介 130
配置provider 132
定义实例化服务的工厂 134
子注射器以及可见性 136
构建注射器层级结构 137
配置依赖关系 138
在组件和指令中使用DI 144
元素注射器简介 145
在ES5中使用Angular的DI机制 149
本章小结 152
第6章 Angular 2中的路由和表单 153
开发一个名为“码农仓库”的应用 153
探索Angular 2中的路由 156
定义根组件并启动应用 157
PathLocationStrategy的用法 158
使用@RouteConfig配置路由 158
routerLink 和router-outlet的用法 160
利用AsyncRoute实现懒加载 162
Angular 2中的表单用法 164
开发模板驱动型表单 164
深入理解模板驱动型表单的标签结构 166
使用内置的表单校验器 168
自定义控件的校验器 169
在Angular中使用select输入项 171
NgForm指令的用法 173
Angular 2中的双向数据绑定 176
存储表单数据 178
显示存储的所有开发者列表 180
本章小结 181
第7章 详解管道以及与RESTful服务端之间的通信 183
在Angular 2中开发数据模型驱动型表单 183
使用控件校验器组合 187
探索Angular的HTTP模块 189
使用Angular的HTTP模块 191
定义参数化视图 193
定义嵌套路由 195
使用管道进行数据转换 198
开发无状态管道 199
使用Angular内置的管道 200
开发有状态管道 201
有状态管道的用法 203
Angular中AsyncPipe的用法 204
本章小结 206
第8章 开发体验与服务端渲染 208
在Web Worker中运行应用 208
WebWorker与Angular 2 210
启动基于WebWorker的应用 210
把应用迁移到Web Worker上 212
让应用兼容Web Worker 214
单页应用的加载过程 216
启用了服务端渲染的SPA的加载过程 219
Angular 2中的服务端渲染 220
改善开发体验 221
各种文本编辑器和IDE 221
热重载 222
用angular-cli初始化项目 223
angular-cli的用法 223
Angular 2快速上手项目 224
Angular 2种子项目 224
针对Webpack的Angular 2入门项目 225
本章小结 225

本书勘误

印次
  • 页码:9  •  行数:8  •  印次: 3

    MVM 应為 MVW

    KenTsai 提交于 2017/12/31 3:43:41
    张春雨 确认于 2018/1/9 9:58:54
  • 页码:20  •  行数:倒数第9行  •  印次: 1

    “Coponent”改为“Component”

    亲爱的牛顿先生 提交于 2017/4/27 18:51:33
    张春雨 确认于 2017/5/3 15:30:00
  • 页码:26  •  行数:16  •  印次: 1

    “EventEmitte”改为“EventEmitter”

    亲爱的牛顿先生 提交于 2017/4/27 18:56:16
    张春雨 确认于 2017/5/3 15:29:43
  • 页码:31  •  行数:倒数第5行  •  印次: 1

    “UserTransaction”改为“UserTransactions”

    亲爱的牛顿先生 提交于 2017/4/27 23:10:06
    张春雨 确认于 2017/5/3 15:29:26
  • 页码:41  •  行数:9  •  印次: 1

    “-t”应为”-g”

    亲爱的牛顿先生 提交于 2017/4/23 22:29:22
    张春雨 确认于 2017/4/24 14:51:52

读者评论

下载资源

相关博文

  • Ionic!用Web技术开发移动应用!

    Ionic!用Web技术开发移动应用!

    陈晓猛 2016-10-02

    导语:只需掌握Web技术就能开发移动应用是不是很爽?Ionic就可以做到!Ionic是近几年很火的一项跨平台开发技术,有了它之后,用我们熟知的HTML、CSS和JavaScript技术就可以同时开发iOS和Android应用。让我们来初...

    陈晓猛 2016-10-02
    899 0 0 0
  • Web技术发展的必然选择

    陈晓猛 2016-10-02

    导语:中2016年9月15日,谷歌正式发布了 Angular 2 的最终版,成为Angular 1 的全平台继任者。 在Angular 2 剧烈变更以及缺乏向下兼容性的背后,主要的推动力是web 技术的演进以及来自于AngularJ...

    陈晓猛 2016-10-02
    519 0 0 0

相关图书

代替VBA!用Pyhton轻松实现Excel编程

苏金明 (作者)

在数据分析方面,Python实际上已经远远超越VBA,因为使用Pyhton提供的数据处理函数和模块就可以实现很多功能,既快速、可靠又简便。<br>本书结合Ope...

¥89.90

DAX权威指南:运用Power BI、SQL Server Analysis Services和Excel实现商业智能分析(第2版)

Alberto Ferrari (作者) 高飞 (译者)

本书是微软DAX语言在商业智能分析、数据建模和数据分析方面的指南。通过对本书的学习,你将了解如何使用DAX语言进行商业智能分析、数据建模和数据分析;你将掌握从基...

¥188.00

从Excel到Python:用Python轻松处理Excel数据

曾贤志 (作者)

本书是写给非IT领域职场办公人员的Python数据处理指南。因为本书面对的不是专业的程序员,所以在叙述上通俗易懂。为了让读者在学习时对Python的知识点有更深...

¥79.00

Power BI企业级分析与应用

雷元 (作者)

本书立足于企业应用场景,从赋能商业价值、培养员工数据分析能力和引领企业数字变革这三大角度勾勒出一套敏捷BI实践指南。<br>除提供丰富的理论指南和Power B...

¥69.80

跟储君老师学Excel极简思维

储君 (作者)

很多人认为,Excel无非就是一个电子表格软件。其实Excel更深层次的意思是Excellent(卓越)。如果你仅仅把Excel当作一个电子表格软件来使用,那么...

¥79.90

Keynote 完全手册

陈天舒(SkyChen ) (作者)

这是一本关于如何思考、设计、制作Keynote(演示文稿)的完整书籍。让读者对设计、制作 Keynote 有全新自我认识后再加以实践操作。无论读者是学生需要制作...

¥79.00