关于不使用key的问题
来源:4-13 深入diff算法源码-updateChildren函数
fy000
2020-03-04
双越老师,这几个章节diff算法很给力,算是看到的所有视频或者资料里面最详细的了,自己阅读vue的diff,经常被细枝末节带走,陷进去,老师的这几章真的是很清晰(一如既往)
有个问题可能表述的不准确:
视频最后 老师列举了 for循环 ABCD,不带key的情况,会删除旧的 插入新的
但是vue的v-for好像不是这样,因为 如果不带key会有默认的就地复用策略:
所以 我认为 写key的作用:
- diff算法找到相同的vNode,性能好 更快,不需要删除插入
- 保证唯一性(避免就地复用状态 例如 visit状态带来的影响)
写回答
2回答
-
慕粉3871079
2021-02-23
那就地更新与移动更新哪种更高效呢
012021-02-23 -
双越
2020-03-04
讲课时可能不能去深入每个框架对 key 的处理细节,要不然复杂度就太高了,大家估计都得听乱了。
diff 算法本身就是一个挺大的范围,key 是其中一个,所以能把 key 的核心价值介绍清楚,就已经可以满足课程目标的需要,满足面试的需要。
不过,你自己去深入的挖掘了细节,这个还是要点赞的,加油!
012021-04-12
相似问题