angular 2如何在变化检测后渲染视图?

How does angular2 render view after change detetction?

我阅读了很多关于变化检测的文章,但没有清楚地了解它是如何工作和呈现视图的。就像在 React 中一样,我们有虚拟 dom 和 diff 算法,它只呈现 UI 的一部分,这些部分已经通过创建 dom 补丁进行了更改,所以类似地 angular 如何知道 UI 的哪一部分=18=] 需要更改。

更改检测如何决定 rendered/replaced 视图中的更改?

每个组件都有一个关联的变更检测器对象,Angular 在运行时创建该对象。变化检测器对象跟踪所有模板绑定。当更改检测运行时,默认情况下,它会脏检查每个更改检测器对象中的每个模板绑定——即,它将以前的值与当前值进行比较。如果检测到更改,新值将传播到 DOM。因此,如果只有一处更改,则只会更新 DOM 的一部分。如果发现更改,则不会重新呈现整个视图...只有更改的部分会受到影响。

我更长的回答: