我阅读了很多关于变更检测的文章,但没有清楚地了解它是如何工作的并呈现视图。就像在反应中我们有虚拟dom和diff算法,它只通过创建dom补丁来渲染已经改变的UI的一部分,所以角度知道如何知道UI的哪个部分需要改变。
更改检测如何决定在视图中呈现/替换哪些更改?
答案 0 :(得分:3)
每个组件都有一个关联的更改检测器对象,Angular在运行时创建该对象。更改检测器对象跟踪所有模板绑定。当更改检测运行时,默认情况下,脏检查每个更改检测器对象中的每个模板绑定 - 即,它将先前值与当前值进行比较。如果检测到更改,则新值将传播到DOM。因此,如果只有一个更改,则只更新DOM的一部分。如果找到更改,则不会重新呈现整个视图...只有更改的部分会受到影响。