vue中v-for 中 :key的一系列问题 (3)

为什么不能用 默认的index 作为 key?

如果你用 index 作为 key,那么在做特殊操作新增或者删除某项的时候,内部默认的index 永远都是连续的,可能会出现bug, 所以有时候不写key、或者写了默认的key效果是一样的。

再通俗点:

这也是vue不推荐使用数组下标作为key的原因。例如数组删除了一个元素,那么这个元素后方元素的下标全都前移了一位,之前key对应的数据和dom就会乱了,除非重新匹配key,那就容易产生错误。如果重新匹配key,等于全部重新渲染一遍,违背了使用key来优化更新dom的初衷。



没有 id 怎么办?

创建一个 id() 函数,每次调用自增一

或者使用 guid 库或者 uuid() 库

Lodash库的uniqueId()方法

为什么 Vue 自己不自动创建 id?  

因为就算 Vue 创建了 id,也同样面临更新时把 id 给谁的问题,id 会再一次地给到错误的地方。

key的作用?

vue的一个优化,为了精准高效的更新dom,

相当于使用key给数组某个元素绑定在一起,如果那个key对应的数据发生变化,直接更新对应的dom就行,不用全部更新一遍。

跟: 为什么不能用 默认的index 作为 key 其实也是差不多的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值