【发布时间】:2016-09-20 02:42:37
【问题描述】:
我知道 AngularJs 中的数据绑定概念是一种幼稚的脏检查机制。在 Google I/O 视频中,他们已经说过,他们优化了 Angular2 中的数据绑定/更改检测。它在 Angular2 中是如何工作的
【问题讨论】:
标签: javascript angular data-binding
我知道 AngularJs 中的数据绑定概念是一种幼稚的脏检查机制。在 Google I/O 视频中,他们已经说过,他们优化了 Angular2 中的数据绑定/更改检测。它在 Angular2 中是如何工作的
【问题讨论】:
标签: javascript angular data-binding
应用状态变化可能由以下原因引起:
它们都是异步的。
那么 Angular 2 是如何知道何时运行变化检测器的呢?因为区域。在那里你可以阅读更多关于它的信息:
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(所以它看起来像组件树 - 从上到下)。 Change Detector 正在比较变量引用,如果引用没有改变,CD 检查属性(如果变量是对象)。
关于这方面的文章真的很棒:
http://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html
【讨论】: