ES6 之 个人解析我爱编程

精湛对比 Angular 2.0与4.0 版本 精湛对比

2018-02-06  本文已影响1076人  爱尔兰的男孩

以下主要来源于angular 官网文档,本人只是结合使用心得 ,做一下解说

实时更新 :

 最新版本 Angular  6.1.0  (2018-06-13)  在GitHub 正式发布6.1.0版本 

 Angular   6.0.0  (2018-05-03)  在GitHub 正式发布6.0 版本

 Angular  5.1.0 (2017-12-02)  在GitHub 正式发布5.1.0 版本

1.0 简述使用经历

1.本人从2017.04 开始接触 angular..js  ,2017.06  开始使用angular2.0 版本 ,2017.12  框架再次晋升 angular4.0 版本, 使用至今 angular5.0 版本都出来了,这其中的故事真是无法用语言来形容。

2.angular 5.0 版本我们没有研究,下载地址链接 百度云: https://pan.baidu.com/s/1kWOATHt 密码:5ul9 ,有兴趣的同学可以研究一下 !!

2. 主要说2.0 版本和4.0 版本的区别

该版本的 Angular 更侧重于移动应用程序开发,它允许开发人员创建跨平台应用程序。原因就是,处理相关移动应用程序(功能、加载时间等)后,处理桌面组件更容易。

改进后的依赖注入(DI):

依赖注入(是一种程序设计模式,一个元素通过它自己的依赖项进行传递,而不是相反的单独处理),是 Angular 和其他的竞争项目上有着本质区别。依赖注入在模块化开发和元素隔离方面非常有用,然而在 Angular 1.x 中,它的实现一直有各种困扰, Angular 2 解决了这些问题,添加了一些缺失的特性,比如子注入器,以及生命周期/作用域控制。

注解(Annotation):

AtScript 提供了工具,用于连接元数据和函数。通过向 DI 库中提供必要的信息(调用函数或者创建类的实例时,检测相关元数据),简化了对象实例的构建。由于提供了注入注解,覆盖参数信息也很简单。

子注入:

子注入继承了父亲的所有 特性服务,同时可以进行重写。根据需求,在各种作用域内,有几种对象类型可以被调用,重写。

实例作用域:

改进过的依赖注入库,有各种作用域控制器组成。使用子注入到当前作用域标识中时,会变得更强壮

动态加载:

这是 Angular 以前几个版本中都没有的功能。在 Angular 2 中添加了,允许开发人员随手添加新的指令(directive)或者控制器(controller)。

模板化:

在 Angular 2 中,模板编译处理是异步的。由于代码依赖于 ES6 模块系统,通过部分组件的引用,模块加载器很容易加载依赖项。

指令:

Angular 2 中有三类可用的指令: 

组件指令:通过封装逻辑到 HTML、CSS、JavaScript 中,使得组件可以重用

装饰指令:用来装饰元素(例如,通过 ng-hide/ng-show 来隐藏/显示元素,或者添加提示)。

模板指令:把 HTML 转换成可重用的模板。完全可以通过写指令来控制模板实例化并插入到文档对象中。比如 ng-repeat 和 ng-if。

子路由:

子路由器通过它自己提供的路由器,将程序的每个部分转换成更紧凑的应用程序。它有助于封装程序的整体特性集合。

屏幕激活器:

在 Angular 2 中, 在导航的生命周期上,通过一套 can* 回调,开发人员可以做到更好地控制。

canActivate:允许或阻止导航到新的 控制器。

activate:响应成功导航到新的控制器。

canDeactivate: 允许或阻止导航到旧的控制器。

deactivate: 响应成功导航到就的控制器

作用域:

Angular 2 移除了作用域($scope)。

Angular 4 特性和性能

相比 Angular 2,添加了很多新内容。不仅有新特性,也有调整,改进旧的功能,让我们继续往下看。

更小更快:

使用 Angular 4,程序将消耗更少的空间,运行速度比以前更快。工作的重点是持续的地进行额外的优化。

视图引擎:

改进了 AOT(Ahead-of-time,动态编译)。这些修改使生成的代码减少改进了约 60%。如果模板越复杂,那么优化的代码也会越多。(译者注:当然,这对于用户来说,完全是透明的,public api 没有发生变化)

动画包:

从 Angular 核心包中提取出动画模块。这意味着,在不使用动画的情况下,多余的代码不会出现在最终打包程序中。

此功能还使您更够轻松地找到文档,并利用自动完成的优势。你可以从 @angular/platform-browser/animations 导入浏览器动画模块,添加动画到主模块(NgModule)。

改进的 *ngIf 和 *ngFor:

模板绑定语法目前支持一些有用的变更。现在你可以使用 if/else 设计语法来分配局部变量,就像 if 来展开一个可观测对象。

Angular 服务端渲染

这个版本现在包含了服务端渲染团队在过去几个月中的外部和内部工作的结果。主要代码都在 @angular/platform-server。(译者注:原先的 Angular 服务端渲染是社区人员维护的,后被 Angular 官方采用,https://github.com/angular/universal

了解更多 Angular 服务端渲染,让我们来看看新的 renderModuleFactory 方法,它在 @angular/platform-server,或者 Rob Wormald 演示代码(译者注:https://github.com/robwormald/ng-universal-demo)。更多文档和代码实例随后提供。

TypeScript 2.1 和 2.2 兼容性:

项目组已升级 Angular 到较新版本的 TypeScript。这将提高 NGC 的速率,在程序中将会有更好的类型检查。

pdf 资料链接:https://pan.baidu.com/s/1eToTpCm 密码:tj8g

以上信息请在官网查看,有不对的地方,请多指正!!

上一篇 下一篇

猜你喜欢

热点阅读