v-for指令中的key值

193 阅读1分钟

v-for指令使用key值几种情况

  1. 没有key值(默认是下标) : 不复用,就地更新
  2. key值为下标(相当于没设置) : 不复用,就地更新
  3. key值是id : 复用相同的key,更新不同的key

总结 : key值优先设置id, 没有id就用下标

【key值作用】

key值的主要作用是给元素添加一个唯一标识符,用于提高vue渲染性能。当data发生变化的时候,vue会使用diff算法来对比新旧虚拟DOM。

如果key值相同,才会考虑复用元素。如果key值不同,则会强制更新元素。一般通过给元素key值设置为id,来保证vue在更新数据的时候可以最大限度复用相同key值的元素。

【key值为什么不能是下标】

因为数组的长度发生变化的时候,其他的元素下标会受到影响。而如果把下标作为key值,由于其他的元素下标变化。所以vue会认为你的key值也变化了,就会强制更新你的元素,影响性能。