v-for为什么要设置key值及为什么不建议使用index作为key

news2024/11/17 21:39:11

为什么要设置key值

  • 提高diff算法的效率,可以更加快捷找出变化和新增的元素,更高效的更新虚拟DOM(key是给每一个vnode的唯一id,可以依靠key,更准确, 更快的拿到oldVnode中对应的vnode节点。)

为什么不建议使用index作为key

  • 以下面代码为例:
<ul>
  <li v-for="(item, index) in lists">
    <input type="checkbox" :value="item.text"/>
    {{item.text}}
    <button @click="remove(index)"></button>
  </li>
</ul>
 
 
<script>
  var vm = new Vue({
  el: '#app',
  data: {
    lists: [
      { id: 1, text: '张' },
      { id: 2, text: '吕' },
      { id: 3, text: '王' }
    ]
  },
  methods: {
    remove(index) {
      //注意这里是shift
      this.lists.splice(index,1)
    }
  }
 })
</script>

在这里插入图片描述
我们删除了第一个,但原来的第二项却自动被“选中上”了。其实这里并不是被选中了,而是因为新旧虚拟dom的节点都一样,就自动复用了。然后对比里面的文本,发现不一样,就仅仅更新文本而已。 发现都有key为0的节点,直接复用,发现里面的文本不一样,直接修改,其他的都不变,所以这里并不是被选中了,而是保留了旧节点的状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/826920.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

思维导图在问题解决中的应用:分析问题、找出解决方案的思维导图

思维导图是一种可视化思维工具&#xff0c;他结构化的的图形方式&#xff0c;可以帮助我们快速捕捉关键信息。避免信息的冗杂。 如今思维导图已经运用于生活以及我们工作的各个领域。不限于教育、项目管理、商业、金融、法律等行业。它分支结构的方式&#xff0c;将中心思想置于…

2023年华数杯数学建模

一、比赛背景 为了培养学生的创新意识及运用数学方法和计算机技术解决实际问题的能力&#xff0c;中国未来研究会大数据与数学模型专业委员会、天津市未来与预测科学研究会大数据分会决定举办华数杯全国大学生数学建模竞赛。竞赛的目标是为培养大学生的科学精神及运用数学解决实…

Java期末复习题库(刷题)

本学期讲java课&#xff0c;进程截止到IO流线程那部分 有题库当然用题库了 顺手自己写一下代码复习一下 关于内存那些事 Java 内存结构 一个知识点&#xff1a;java.lang包下的类都可以直接用不用导入&#xff08;import&#xff09;包 判断题 判断题凡是 x&#xff08;√…

安全防护,保障企业图文档安全的有效方法

随着企业现在数据量的不断增加和数据泄露事件的频发&#xff0c;图文档的安全性成为了企业必须高度关注的问题。传统的纸质文件存储方式已不适应现代企业的需求&#xff0c;而在线图文档管理成为了更加安全可靠的数字化解决方案。那么在在线图文档管理中&#xff0c;如何采取有…

【JAVA】String ,StringBuffer 和 StringBuilder 三者有何联系?

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️初识JAVA】 文章目录 前言StringBufferStringBuffer方法 StringBuilderStringBuilder方法 String &#xff0c;StringBuffer 和 StringBuilder的区别String和StringBuffer互相转换 前言 在之前的文章…

【数据结构】实现单链表的增删查

目录 1.定义接口2.无头单链表实现接口2.1 头插addFirst2.2 尾插add2.3 删除元素remove2.4 修改元素set2.5 获取元素get 3.带头单链表实现接口3.1 头插addFirst3.2 尾插add3.3 删除元素remove3.4 判断是否包含元素element 1.定义接口 public interface SeqList<E>{//默认…

中兴服务器支持百度“文心一言”,助力AI产业发展

前段时间&#xff0c;中兴和百度正式对外宣布中兴服务器将会支持百度“文心一言”&#xff0c;为其提供更加强劲的算力支撑&#xff0c;从而加速“文心一言”的完事升级与更新迭代&#xff0c;助力AI产业化应用和生态的繁荣发展。   “文心一言”是百度基于文心大模型技术推出…

dubbo配置---重试与版本号

1、重试次数 失败自动切换&#xff0c;当出现失败&#xff0c;重试其它服务器&#xff0c;但重试会带来更长延迟。可通过 retries“2”{默认} 来设置重试次数(不含第一次)。 &#xff08;1&#xff09;在调用端&#xff0c;Reference注解添加属性 retries&#xff0c;设置重试…

P3372 【模板】线段树 1 常规做法

题目 思路 普普通通的线段树做法 代码 #include<bits/stdc.h> using namespace std; const int M1e55; #define lc(x) ((x)<<1) #define rc(x) ((x)<<1|1) #define int long long int n,m; int a[M],sm[M<<2],tag[M<<2]; void pushup(int x) …

Linux系统管理:虚拟机Alpine Linux安装

目录 一、理论 1.Alpine Linux 二、实验 1.Alpine Linux安装 三、问题 1.Alpine Linux 缺少VIM命令 2.Alpine Linux SSH连接不上 3.Alpine Linux IP配置 四、总结 一、理论 1.Alpine Linux &#xff08;1&#xff09;概念 Alpine 操作系统是一个面向安全的轻型 Lin…

Linux 第五章之软件包管理器 yum

一、什么是软件包 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的…

概率论与数理统计复习总结3

概率论与数理统计复习总结&#xff0c;仅供笔者复习使用&#xff0c;参考教材&#xff1a; 《概率论与数理统计》/ 荣腾中主编. — 第 2 版. 高等教育出版社《2024高途考研数学——概率基础精讲》王喆 概率论与数理统计实际上是两个互补的分支&#xff1a;概率论 在 已知随机…

【微服务】springboot整合redis哨兵集群使用详解

目录 一、前言 二、环境准备 三、安装redis 3.1 前置准备 3.1.1 下载安装包 3.1.2 准备依赖环境 3.1.3 上传并解压包 3.2 执行安装 四、搭建redis主从集群 4.1 环境准备 4.2 搭建过程 4.2.1 创建实例文件目录 4.2.2 修改redis.conf配置文件 4.2.3 拷贝配置文件 4…

设计模式之开闭原则

什么是开闭原则? 开放封闭原则称为OCP原则&#xff08;Open Closed Principle&#xff09;是所有面向对象原则的核心。 “开闭原则”是面向对象编程中最基础和最重要的设计原则之一。 软件设计本身所追求的目标就是封装变化、降低耦合&#xff0c;而开放封闭原则正是对这一…

GICI-LIB代码框架学习

一直想要学习多源融合&#xff0c;一直各种琐碎事情耽搁&#xff0c;没有进展。终于&#xff0c;今天以上海交大开源的GNSS/INS/Camera组合导航库为开始。 二话不说&#xff0c;github下载代码后&#xff0c;不编译&#xff0c;不运行&#xff0c;直接vs code打开工程&#xf…

【excel常用文本函数大全上】

目录索引 LEFT&#xff1a;公式&#xff1a;举例&#xff1a; RIGHT&#xff1a;公式&#xff1a;举例&#xff1a; MID&#xff1a;公式&#xff1a;举例&#xff1a; FIND&#xff1a;公式&#xff1a;举例&#xff1a; LEN&#xff1a;公式&#xff1a;举例&#xff1a; LEN…

base64编码转图片

String data"data:image/jpeg;base64,/9j/4T...."; // String data"null";String taskid"4028488c894831fd01894cbf0c6f0033";if(data.equals("")||data.equals("null")){System.out.println("无朝向照片可…

Java IO编程(一)

目录 1.File类 2.字节输入输出流(InputStream Outputstream) 3.Writer与Reader字符输入输出流 4.打印流 1.File类 file类专门用于管理file文件的&#xff0c;比如文件的创建&#xff0c;删除&#xff0c;修改名称等等 以下是File类的常用方法&#xff1a; 方法描述exists()…

《Opencv入门到项目实战》(一):Opencv安装及图像基本操作

文章目录 0.Opencv介绍及环境配置1.图像读取1.1 彩色图像读取1.2 灰色图像读取 2.视频读取3.ROI读取3.1 图形切片处理3.2 提取颜色通道 4.图像填充5.数值运算与图像融合5.1 加法运算5.2 图像融合 6. 总结 0.Opencv介绍及环境配置 OpenCV是一个强大的计算机视觉库&#xff0c;它…

CS5265 USB-C to HDMI 4k@60Hz单转方案

CS5265AN是一款高性能Type-C/DP1.4至HDMI2.0b转换器芯片&#xff0c;集成了DP1.4兼容接收机和HDMI2.0b兼容发射机&#xff0c;还配备了CC控制器用于CC通信&#xff0c;实现DP Alt模式。DP接口包括4条主通道、辅助通道和HPD信号&#xff0c;接收器支持每通道最大5.4Gbps数据速率…