391

问答题 391 /501

有了解过react的虚拟DOM吗,虚拟DOM是怎么对比的呢

参考答案

参考回答:

当然是使用的diff算法,diff算法有三种优化形式:

tree diff:将新旧两颗DOM树按照层级遍历,只对同级的DOM节点进行比较,即同一父节点下的所有子节点,当发现节点已经不存在,则该节点及其子节点会被完全删除,不会进一步比较

component diff:不同组件之间的对比,如果组件类型相同,暂不更新,否则删除旧的组件,再创建一个新的组件,插入到删除组件的位置

element diff:在类型相同的组件内,再继续对比组件内部的元素,

参考:https://juejin.im/post/5a3200fe51882554bd5111a0