2016-08-05 74 views
5

精彩的开发人员,我需要一点帮助,澄清为什么Angular 2比Angular 1更高性能?为什么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

Angular2 - 不做深对象compairson。如果项目被添加到/从数组中移除,更改检测将无法检测到它。对象属性一样,只要它们不直接从视图中绑定即可。

  • 双向绑定被分割为将检测到的更改从根节点传播到叶节点。

  • 从孩子到父母的变化仅通过显式事件(输出)传播,仅传播给直接父母。

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

  • 代码(尤其是更改检测代码)的编写方式可以尽可能多地由JS VM优化。

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

1

其中一个原因是业绩变化检测环路的存在的可能性。

  • Angular1使得它的性能与它的轮询状态有关。在每个摘要循环中,框架会检查应用程序中数百或数千个值是否有变化。
  • Angular 2将允许开发人员为变更检测机制提供一些保证,以避免扫描部件树。欲了解更多详情,你可以在here找到更多。