vue中设置key值的详细解释

相信大家在刚开始学习vue的时候用v-for遍历数组的时候旁边要设置一个key值.这个key值尽量不能设置为遍历中的index.那我这期就来详细讲解其中的原因.

主要原因是因为Vue底层中的diff算法.不认识没关系,不是很影响理解.

为了使浏览器更加快捷,咱们就加了一个key值.相同key值进行比较.

如果key设置为index会发生什么后果?

这个是原来的数组[111,222,333]  虚拟dom就是 0 111,1 222, 2 333 ;当我们删除111现在的数组变为[222,333]虚拟dom就是 0 222,1 333;相同的key值进行比较0 111 和 0 222比较值不同进行修改,1 222 和 1 333进行比较值不同进行修改,key的值是2的找不到删除.这样下来修改了2个值修改一个值删除并没有做到便捷,并且在界面上本来你点的是删除111结果页面渲染的删除333,当然修改了key=0 的值为222 key=1的值为333结果还是正确的.

当你设置一个正确的key值(这里为了简便就把每个遍历的数组值是key值)

[111,222,333] 虚拟dom 111 111, 222 222,333 333,删除111数组为[222,333] 虚拟dom是222 222,333 333,这样下来key为111没有进行删除.key为222进行对比值相同不做修改,key为333值相同不做修改.这样下来就只是删除了一个key为111的数据,便捷了很多,而且页面渲染也相同.

所以不要设置key值为index了.选一个合理的key值很重要. 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值