vue循环中的:key应该怎么写

admin_lin
  • 23
<div v-for="(item, index) in list" :key="index" class="item"></div>

一直都是这么写的,虽然在很多地方看到不要用index作为key。但是应该怎么写呢?用随机数,时间戳表示唯一?

回复
阅读 575
2 个回答

尽可能使 key 值与数组元素内容相关,如果元素本身就有唯一 ID,那么用这个 ID 是再好不过的了。
不推荐用遍历的 index ,是因为 index与内容无关,只与位置有关,但是插入、删除、排序都会影响元素的位置,如果不会对数组进行这些操作的话,用 index 是不会有问题的。

这就好比你去打疫苗的时候,有人打第一针,有人打第二针,但大家都在一个队伍里。
如果护士叫人进去的时候,只依据当前排队的号安排针剂,那就会打错针,或者为了不打错针重新询问你有没有打针、打的什么针、打了第几针;
但是如果护士按号把人叫进去,并让人提供身份证号来记录和查询打针的记录,那么只要一查记录就知道如何安排针剂了。

当然,这只是一个粗浅的比喻,要学会虚拟 DOM 原理才能理解透彻。

自行维护一个自增id

不过只要list不会减少,那key用index也没问题

vue3可以不用写key了好像

你知道吗?

宣传栏