精彩的开发人员,我需要一些帮助来澄清为什么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的性能?非常感谢..
答案 0 :(得分:3)
Angular2 - 不做深对象比赛。如果在数组中添加/删除项目,则更改检测将不会检测到它。对象属性也是如此,只要它们不直接从视图绑定。
双向绑定被分割为仅从根到叶传播检测到的变化。
从子级到父级的更改仅通过显式事件(输出)传播,仅传递给直接父级。
当没有输入值发生更改时,ChangeDetectionStrategy.OnPush不会对组件运行更改检测。这修剪了根本不运行变化检测的组件子树。
代码(尤其是变更检测代码)的编写方式可以让JS VM尽可能地进行优化。
https://www.quora.com/What-is-the-difference-between-angularjs-and-angular2
答案 1 :(得分:1)
性能的原因之一是存在变化检测循环的可能性。