Vue— vue中key的作用

一. 问题

vue开发中,像v-for在使用时,需要加上:key,如果不加的话控制台会给出警报,所以这个key的作用是什么呢?

二. 作用

key是给每一个vnode的唯一id,也是diff的一种优化策略,可以根据key,更准确, 更快的找到对应的vnode节点

1. 在不使用key的时候 数据更新的时候 vue会遍历依次比较dom元素有没有改变,然后依次的替换或更新

2. 在使用了key的时候 数据更新的时候 vue会根据key的顺序记录每个元素 如果之前存在的某个key的元素更新后没有的话 就会直接被移除,新产生的key的元素也不会马上更新dom,而是再相同key的元素比较更新之后再更新到相应位置

例子:

比如一组数据ABCD,我们要更新成ABECD

那如果不适用key 就会依次比较dom元素 不同就会更新 所以更新操作会有三次

E→C, C→D 最后插入D

如果使用了key 当遍历到E的时候 发现原先不存在E的key 那么会先从后面进行比较 发现CD之前存在 最后只需要插入E就可以了

所以使用key比不适用key再数据更新时候的处理上对dom操作更少,也可以更快更高效的完成

三. 其他

当然除非遍历的dom内容非常简单,使不使用key的差异不大,但建议在使用v-for都加上key

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mickey_于浩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值