优化数据绑定机制如何在Angular2中工作

时间:2016-09-20 02:42:38

标签: javascript angular data-binding

我知道AngularJs中的数据绑定概念是一种天真的脏检查机制。在Google I / O视频中,他们说过,他们优化了Angular2中的数据绑定/更改检测。它如何在Angular2中起作用

1 个答案:

答案 0 :(得分:1)

应用程序状态更改可能由以下原因引起:

  • 事件,
  • XHR - 获取数据,
  • 计时器 - setTimeout(),setInterval()

它们都是异步的。

那么Angular 2如何知道何时运行变换探测器?因为 Zones 。你可以在那里阅读更多相关信息:

http://blog.thoughtram.io/angular/2016/02/01/zones-in-angular-2.html http://blog.thoughtram.io/angular/2016/01/22/understanding-zones.html

Zones有生命周期事件。 ApplicationRef是监听区onTurnDone事件。每当触发此事件时,它都会执行tick()函数,启动更改检测

Angular 2中的所有组件都有自己的更改检测器(因此它看起来像组件树 - 从上到下)。 Change Detector正在比较变量引用,如果引用没有改变,CD检查属性(如果变量是对象)。

关于这一点的文章非常棒:

http://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html