第1章
认识Angular
1.1 Angular 2简介
Angular 2 是Google推出的一个跨平台全终端的Web前端框架,使用Angular 2可以快速开发出适合手机、平板以及PC端的前端网页应用。它让开发人员可以采用组件化的方式来编写应用,像App开发一样。借助来自Ionic、NativeScript和React Native中的技术与思想,我们可以使用Angular 2构建原生移动应用。
从性能角度来看,Angular会把你的模板转换成代码,针对性地进行高度优化,轻松获得框架提供的高生产率,同时又能保留所有手写代码的优点。Angular应用通过新的组件路由(Router)模块实现快速加载,提供了自动拆分代码的功能,为用户单独加载所请求视图中需要的那部分代码。
官方还提供了命令行工具(也就是本书采用的Angular-CLI),屏蔽了大量配置细节,使得我们更专注于代码的开发,让开发人员快速进入构建环节、添加组件和测试,然后立即部署。
与目前比较火的React和Vue.js相比,Angular有如下优点:
由于Google的目的是推出一个完整解决方案,所以官方默认提供的类库(比如routing、HTTP、依赖性注入(DI)等)非常完整,无需自己选择。React的一大痛点就是选择太多导致在配置寻找组件和类库的过程中消耗太多精力,当然从另一方面看这也是其优势,选择众多且自由。
官方支持TypeScript(微软出品,也是JavaScript的超集,也是JavaScript的强类型版本)作为首选编程语言,使得开发脚本语言的一些问题可以更早更方便地找到。
RxJS友好使得响应式编程在Augular 2中变得极为容易(Google开发的框架依赖这么多微软的产品,可见微软的转型还是很成功的)。
支持NativeScript甚至ReactNative等进行原生Android/iOS应用开发(React支持React Native)。
支持服务器端渲染(React也支持)。
总体来讲,个人认为Angular 2更适合从原生App开发或后端Java/.Net等转型过来开发前端的程序员,因为它的开发模型更接近于传统强类型语言的模式,加上官方内建的组件和类库比较完整,有官方中文网站 https://angular.cn,学习曲线要低一些。有过Angular 1.x 开发经验的人要注意了,虽然只有一个版本号的差距,但2.x和1.x是完全不同的,不要奢望1.x的应用会平滑迁移到2.x上。
有趣的是,Angular团队内部在准备下一个版本,目前准备叫做Angular 4(只是计划哈),看起来太恐怖了,一下跳到Angular 4,那Angular 3怎么办,我还要不要学Angular 2。其实不用慌张,和前面的1.x到2.x的差距恰恰相反,这次只是版本号跳跃,框架却不会有太大差距,只是因为内部几个组件需要统一版本号,因此跳过了Angular 3。
所以呢,不要慌张,Angular 2和Angular 4不会有本质的差别。
Angular 支持大多数常用浏览器,参见表1.1。
表 1.1 Angular 2的浏览器兼容性
Chrome Firefox Edge IE Safari iOS Android IE Mobile
45以上 40以上 13以上 9以上 7以上 7以上 4.1以上 11以上