关于tag和key相同的比较问题
来源:4-9 虚拟DOM-diff算法概述
Harby_C
2020-04-26
老师你好,本节说同tag同key,认为是相同节点,不做深度比较。但是从理解上来说,同tag同key下,存在children不同的情况,而且看完snabbdom后,也正是在同tag同key的情况下做了深度比较,用updateChildren函数比较了子节点
写回答
2回答
-
Harby_C
提问者
2020-04-26
也就说一般的diff算法理论是同tag同key不做深度比较。但是由于vue参考的是snabbdom库实现的vdom和diff,在面试中被问到vue的diff算法时,是不是就该按照snabbdom的特性来回答,即直接表述同tag同key时,才做深度比较。不然在描述细节的时候会显得跟同tag同key不做深度比较的理论对应不上
022020-04-26 -
双越
2020-04-26
同 key 同 tag ,即 sameNode ,则不会向下继续比较 —— 这是 diff 算法的一个理论指导。
但实际不同 lib 的实现上,还会存在差异,例如 snabbdom 的逻辑。这也是很正常的事情。
00
相似问题