优秀的开发人员,我需要一点帮助来澄清为什么 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
同一讨论中的其他解释似乎也围绕此展开。
有人可以为我解释为什么这 2 个因素(以及其他因素,如果有的话)有助于提高 Angular 2 的性能吗?非常感谢..
最佳答案
Angular 2 - 不进行深度对象比较。如果将项目添加到数组或从数组中删除,更改检测将不会检测到它。对象属性也一样,只要它们不直接从 View 绑定(bind)即可。
双向绑定(bind)分为仅将检测到的更改从根传播到叶。
从子级到父级的更改仅通过显式事件(输出)传播,仅传播到直接父级。
ChangeDetectionStrategy.OnPush 在没有输入值发生变化时不会对组件运行变化检测。这会修剪根本不运行更改检测的组件子树。
代码(尤其是变更检测代码)的编写方式可以让 JS 虚拟机尽可能优化。
https://www.quora.com/What-is-the-difference-between-angularjs-and-angular2
关于performance - 为什么 Angular 2 比 Angular 1 有更好的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38780322/