列表循环使用 index 作为 key

来源:5-10 原理图

qq_毛线_0

2020-06-29

  1. 如果在纯文本渲染的 li 列表中,使用 index 作为 key,Vue 使用“就地复用”的策略直接进行文本的替换,这时候的效率是不是反而会比使用 id 作为 key ,同时移动 dom 来得高?
  2. 有的文章写说使用 index 作为 key 在 diff 过程中会触发子组件视图的重新渲染等一套很重的逻辑,并且会额外触发几个钩子函数。但是我看如果使用 id 的情况下仍然也会触发这些逻辑。那么在什么场景下使用 index 会带来额外不必要的性能损耗呢?老师求解答
写回答

1回答

ustbhuangyi

2020-06-29

使用 index 作为 key 倒不是在性能方面的问题,最坑的地方在于列表删除场景,Vue.js 会复用错误的节点,导致出现 bug。

0
0

Vue.js 源码深入解析 深入理解Vue实现原理

全方位讲解 Vue.js 源码,进阶高级工程师

4984 学习 · 1037 问题

查看课程