Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
203 views
in Technique[技术] by (71.8m points)

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

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...