vue中v-for为什么要增加key?

测试代码

<!DOCTYPE html>
<html>
<head> 
  <title>03-key的作用及原理?</title>
</head>
<body>
    <div id="demo">
          <p v-for="item in items" :key="item">{{item}}</p> 
    </div>
  <script src="../../dist/vue.js"></script>
   <script>
    // 创建实例
    const app = new Vue({
            el: '#demo',
            data: { items: ['a', 'b', 'c', 'd', 'e'] },
            mounted () {
                    setTimeout(() => { 
                          this.items.splice(2, 0, 'f')
                    }, 2000); 
            },
      });
    </script>
</body>
</html>

以上的实现过程为:

在这里插入图片描述



如果不使用key的情况下:
在这里插入图片描述

需要进行三次更新,一次创建插入,又浪费时间又浪费资源,消耗性能。




使用key的情况下:
在这里插入图片描述

只进行了一次创建插入操作

结论:

key的作用主要是为了高效的更新虚拟DOM,其原理是vue在patch过程中通过key可以精准判断两 个节点是否是同一个,从而避免频繁更新不同元素,使得整个patch过程更加高效,减少DOM操作量,提高性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值