【问题标题】:How does optimised data binding mechanism work in Angular2优化的数据绑定机制在 Angular2 中是如何工作的
【发布时间】:2016-09-20 02:42:37
【问题描述】:

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

【问题讨论】:

    标签: javascript angular data-binding


    【解决方案1】:

    应用状态变化可能由以下原因引起:

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

    它们都是异步的。

    那么 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

    【讨论】:

      猜你喜欢
      • 2016-05-01
      • 2012-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多