React/Vue 中虚拟DOM中的diff算法为什么是O(n)?

diff 时新旧两个tree的子节点对比时,要去找旧节点中对应的key节点,这种需要两层循环,难道时间复杂度不是O(n*n)吗?
我能想到是O(n)的方法是将旧节点中的具有key的节点先遍历一次用hash存下来

回答

因为在算法中理论上他们生成的树的结构应该是一模一样的,同样的位置上的dom应该是一样的。不一样的话,就触发更新了

难道是因为需要查找相同key的过程比较少,所以忽略了这部分??

以上是 React/Vue 中虚拟DOM中的diff算法为什么是O(n)? 的全部内容, 来源链接: www.h5w3.com/37622.html

回到顶部