vue3中key值的作用,为什么不能用索引作为key值

虚拟DOM,vue3中key值的作用,为什么不能使用索引作为key值
摘要由CSDN通过智能技术生成

在本文开始前,我们先想想我们在什么时候会用到key值呢,我想一般我们都是在v-for的时候接触到的key值,key值一般都是在列表渲染的时候出现,那么key值具体是干什么的呢,可以用index作为key值吗

虚拟dom

学习过vue我们都知道vue有一个特性:使用虚拟DOM和Diff算法,尽量复用DOM节点
接下来画一个图,简单了解一下vue使用虚拟dom实现的一个流程
在这里插入图片描述
我们在第一遍添加数据的时候vue就会将我们的数据放入虚拟DOM里面,添加新的数据时,又会产生新的虚拟DOM,我们新的虚拟DOM会和旧的虚拟DOM进行一个比较,看看有没有什么不同(different)简称Diff算法,发现新的虚拟DOM中有跟旧虚拟DOM中有相同的内容,那么,我们就会直接调用旧的虚拟DOM中的内容(也就是复用),从而提高效率。

key值的作用

我们新虚拟DOM在跟旧的虚拟DOM进行对比的时候,是根据key值的序号,逐个进行对比的

简单点来说就是:
key为1的新虚拟DOM去找key为1的旧的虚拟DOM,看看内容是不是一样,如果一样,就直接复用,如果不一样,就修改为新的内容,或者添加新的内容

索引为什么不能做key值

我们先来看一个简单的例子感受一下索引做key值和id做key值的区别:
索引做key值代码如下:

<template>
  <div>
      <ul>
          <li v-for="item in cars" :key="item.index">
            {
   {
   item.name}}
            价格是:<input type="text">
          </li>
          <button  @click="addCar()">添加车位</button>
      </ul>
  
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值