为什么Angular 2的性能优于Angular 1?

时间:2016-08-05 02:47:15

标签: performance angular

精彩的开发人员,我需要一些帮助来澄清为什么Angular 2比Angular 1更具性能?

在搜索网络后,我从Er Shahbaz Sharif in a Quora discussion

中得出了相关的解释
Angular 2 is using Hierarchical Dependency Injection system which is major performance booster. 
Angular 2 implements unidirectional tree based change detection which again increases performance . 
As per ng-conf meetup, angular 2 is 5 times faster as compared to angular 1

同一讨论中的其他解释似乎也在此围绕。

有人可以为我澄清为什么这两个因素(以及其他因素,如果有的话)有助于提升Angular 2的性能?非常感谢..

2 个答案:

答案 0 :(得分:3)

Angular2 - 不做深对象比赛。如果在数组中添加/删除项目,则更改检测将不会检测到它。对象属性也是如此,只要它们不直接从视图绑定。

  • 双向绑定被分割为仅从根到叶传播检测到的变化。

  • 从子级到父级的更改仅通过显式事件(输出)传播,仅传递给直接父级。

  • 当没有输入值发生更改时,ChangeDetectionStrategy.OnPush不会对组件运行更改检测。这修剪了根本不运行变化检测的组件子树。

  • 代码(尤其是变更检测代码)的编写方式可以让JS VM尽可能地进行优化。

https://www.quora.com/What-is-the-difference-between-angularjs-and-angular2

答案 1 :(得分:1)

性能的原因之一是存在变化检测循环的可能性。

  • Angular1通过轮询状态来影响其性能。在每个摘要周期中,框架会检查应用中是否有数百或数千个值发生更改。
  • Angular 2将允许开发人员为变更检测机制提供一些保证,以避免扫描组件树的部分。有关详细信息,您可以在here找到更多信息。