最近入了ng2的坑,发现里面的东西还挺新,还是之前只听过没写过的知识点,各种在2016或2015才出来的新名词和热词都用上了,模块化、打包、函数式编程思想、前后端分离等等,而且ng2的语法像极了java,所以是纯前端的同学想上手ng2还是需要一点时间的,本人也是熬了一点苦头才摸清ng2的套路,基本还算是入门级别,但我会在下面罗列出学ng2之前必看的一些内容和知识点,也算是自我的检验。
- Typescript
- ES6
- Rxjs的Observable
- Node
- Webpack
1和3算是我在入坑前遇到的知识盲点,相信看过angular2的官方文档的同学们在不知道typescript的情况很难弄清它在弄啥嘞
Typescript
ng2的官方语言就是这个TS,基本上官方的文档里面所有的示例都是基于这个ts的,它仅仅只是微软出的一个JS的超集,让JS的语法强制类型化,基本上对JS掌握较深的同学入手ts基本不难。可以查看官方文档(https://www.tslang.cn/docs/tutorial.html)
ES6
作为一枚前端狗,如果还不知道es6的话。。得赶紧补习了,在ng2里面也大量用到了箭头函数,…展开运算符,Promise对象等等等等,如果没有对es6的认识或者有点印象的话也是比较难熬的,大家可以查看阮一峰老师的ECMAscript6入门一书(http://es6.ruanyifeng.com/)
Observable
我记得我在看HTTP这一章节的时候,两个钟头都是一脸懵逼的神情。。因为ng2的http服务的请求返回的类型就是这个Observable(可观察对象),它是Rxjs的其中一个方法,可以想象成它就是一个状态机,可以处理有限个数的状态当然也有可能处理无限个状态,提到这里可能有人会想到了Promise,没错,但是Promise只有pending、resolved、rejected三种状态,而Observable有可能就是N+3种状态,几乎可以说是Promise的增强版了,而且Promise的任何一种状态一旦触发就不能取消,就是说它一定会有一个返回结果,举一个实际可能会遇到的需求,比如要做一个搜索的输入框,当用户点击确定或者正在输入的过程当中不断的向服务器发送get请求,那么问题就在于当用户在1s之内快速的按下键盘的情况下就会一次性触发很多次请求,这肯定会很耗资源,这就是Promise的局限性,(虽然我还是喜欢用Promise,2333),而如果采用Rxjs的Observable可观察对象那么就很轻松的完成这个需求,它能在用户发送请求的过程当中中断或取消上一次触发的请求状态,这在Promise中是很难做到的,关于更加具体的Observable大家可以查看中文翻译版本的文档( https://buctwbzs.gitbooks.io/rxjs/content/observable.html ),当然这个Rxjs的理念还是非常难懂的,不过在ng2当中只要掌握好这个Observable即可,如果还是坚持喜欢用Promise的同学可以把它用.toPromise()转成Promise对象
Node
这里的所说的node其实只要你知道它是个啥就够了,知道如何启动一个服务,如何下载包管理器npm,懂得常见的指令就好了,因为现在谷歌团队正在beta这个ng2的脚手架工具angular-cli,想要用它还是得会node指令才行
webpack
一种模块管理和打包工具,你懂的
下面是大漠老师的关于angular2的优质学习资源一手资料,哇咔咔,棒棒的,喜欢的同学可以经常看看
(https://my.oschina.net/mumu/blog/831790)