Skip to content
白褶的博客
搜索文档
K
Main Navigation
首页
学习笔记
外观
菜单
返回顶部
大纲
Virtual DOM及key属性的作用
关于React虚拟DOM diff算法在页面更新时候的工作原理
广度优先分层比较
先从根节点开始比较
属性变化及顺序(A和B调整顺序,交换节点位置)
节点类型发生变化(直接将F节点删除,创建一个新的节点append到A节点下)
节点跨层移动(直接将B节点下的子节点全部删除,创建一个新的D节点)
diff算法基于虚拟DOM的两个假设
组件的DOM结构式相对稳定的
类型相同的兄弟节点可以被唯一标识(相同节点用key来进行标识,提升性能)
小结
算法复杂度为
O(n)
虚拟DOM通过广度优先分层比较计算diff
key属性的作用作为唯一标识