关于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不做深度比较的理论对应不上

0
2
Harby_C
回复
双越
好的 谢谢老师的解答
2020-04-26
共2条回复

双越

2020-04-26

同 key 同 tag ,即 sameNode ,则不会向下继续比较 —— 这是 diff 算法的一个理论指导。

但实际不同 lib 的实现上,还会存在差异,例如 snabbdom 的逻辑。这也是很正常的事情。

0
0

2024版 前端框架及项目面试 聚焦Vue3/React/Webpack

面向1-3年前端的框架及项目面试“刚需内容”

4664 学习 · 1644 问题

查看课程