采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师你好,本节说同tag同key,认为是相同节点,不做深度比较。但是从理解上来说,同tag同key下,存在children不同的情况,而且看完snabbdom后,也正是在同tag同key的情况下做了深度比较,用updateChildren函数比较了子节点
也就说一般的diff算法理论是同tag同key不做深度比较。但是由于vue参考的是snabbdom库实现的vdom和diff,在面试中被问到vue的diff算法时,是不是就该按照snabbdom的特性来回答,即直接表述同tag同key时,才做深度比较。不然在描述细节的时候会显得跟同tag同key不做深度比较的理论对应不上
如果问到具体实现方式,你可以参考 snabbdom 的方式来说。如果问到 diff 算法的时间复杂度,你可以说课程里提到的三条优化。
好的 谢谢老师的解答
同 key 同 tag ,即 sameNode ,则不会向下继续比较 —— 这是 diff 算法的一个理论指导。
但实际不同 lib 的实现上,还会存在差异,例如 snabbdom 的逻辑。这也是很正常的事情。
登录后可查看更多问答,登录/注册
面向1-3年前端的框架及项目面试“刚需内容”
4.1k 1
2.7k 11
1.3k 11
1.4k 11
1.2k 11