vue中key的用法

加key是提升vue渲染效率,减少DOM操作。

vue列表元素的更新机制:

        当列表元素没有设置key的时候,vue判断是否操作这个DOM元素,是根据新旧两次数据的元素顺序进行对比,看一下元素内容是否发生变化。发生变化vue就操作这个DOM元素,没有变就不操作这个DOM元素。

        当列表元素设置了key的时候,vue判断新旧dom内容是否发生变化的时候,不再按照顺序对比了,而是找相同key值得元素进行对比,不受顺序得影响了。能始终保证只操作变化了得DOM元素。

 问题:遍历数据得索引能否作为key值?

     不能,因为索引是按元素顺序生成的。且始终从0开始,因此和不设置key效果一样了。

案例:

不加:key="item":

<template><div><h3 style="color: #f69">key的用法</h3><p v-for="item in arr">{{ item }}</p><!-- <button @click="arr.push(4)">添加</button> --><button @click="arr.unshift(4)">添加</button><!-- 用:key 元素单个添加,不改变原有元素,不用:key 元素都变动,改变原有元素 --></div>
</template>
<script>
export default {data() {return {arr: [1, 2, 3],};},methods: {},created: {},
};
</script>

 运行:

加key="item":

<template><div><h3 style="color: #f69">key的用法</h3><p v-for="item in arr" :key="item">{{ item }}</p><!-- <button @click="arr.push(4)">添加</button> --><button @click="arr.unshift(4)">添加</button><!-- 用:key 元素单个添加,不改变原有元素,不用:key 元素都变动,改变原有元素 --></div>
</template>
<script>
export default {data() {return {arr: [1, 2, 3],};},methods: {},created: {},
};
</script>

运行:

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何将ElementUI组件库中的时间控件迁移到帆软报表中

需求:需要将ElementUI组件库中的时间控件迁移到帆软报表中,具体为普通报表的参数面板中,填报报表的组件中,决策报表的组件与参数面板中。 这三个场景中分别需要用到帆软报表二开平台的ParameterWidgetOptionProvider,FormWidgetOptionProvider,CellWidgetOptionProvider开…

万界星空科技云MES,助力客户快速构建数字工厂

一、MES发展趋势 1、定制化趋势 工业2.0、3.0的技术已较为成熟&#xff0c;部分制造业水平较为发达的国家已经率先进入以网络化、智能化为代表的工业4.0发展阶段,MES作为制造业规划层随着物联网等持续发展&#xff0c;为适应定制化时代&#xff0c;整体技术模块化、服务化将重…

word2019保存后的图片变模糊了怎么办?Word 2019 默认保存后压缩变模糊的问题,解决方案

Word 2019 默认保存后压缩变模糊的问题&#xff0c;解决方案 1&#xff0c;新建word 文件&#xff0c;插入一张原始图片&#xff0c;1080*1920&#xff0c;如下图&#xff1a; 2&#xff0c;保存时&#xff0c;word 2019默认选项&#xff0c;导致word 保存后&#xff0c;图片…

1944. 队列中可以看到的人数

有 n 个人排成一个队列&#xff0c;从左到右 编号为 0 到 n - 1 。给你以一个整数数组 heights &#xff0c;每个整数 互不相同&#xff0c;heights[i] 表示第 i 个人的高度。 一个人能 看到 他右边另一个人的条件是这两人之间的所有人都比他们两人 矮 。更正式的&#xff0c;…

【Nessus】容器化使用Nessus网络漏洞扫描工具

Nessus是一款广泛使用的网络漏洞扫描工具&#xff0c;用于评估计算机系统、网络设备和应用程序中存在的安全漏洞。它由Tenable Network Security开发&#xff0c;并广泛用于网络安全行业。 Nessus可以扫描目标系统并提供有关潜在漏洞的详细报告&#xff0c;帮助安全人员发现和…

【Nodejs】基于express|ejs的用户博客管理系统前后端代码

目录 package.json 后端&#xff1a; server.js router/admin/index.js router/admin/login.js router/admin/blog.js router/admin/users.js router/web/index.js 前端&#xff1a; views/admin/common/top.ejs views/admin/index.ejs views/admin/login.ejs vie…

如何查找iPhone中所有的应用程序

​ ​ Apple 的 App Store 共有约 200 万个适用于 iPhone 和 iPad 的应用程序。如果您像我们一样&#xff0c;您的 iOS 或 iPadOS 设备上可能有数十个应用程序&#xff0c;但没有机会将它们全部整理好。您很容易忘记主屏幕上应用程序图标的位置。 幸运的是&#xff0c;iPhone…

BLE Mesh蓝牙组网技术详细解析之Model Layer模型层(八)

目录 一、什么是BLE Mesh Model Layer模型层&#xff1f; 二、SIG Model 2.1 模型概念 2.2 消息格式 2.3 开关模型 四、资料获取 一、什么是BLE Mesh Model Layer模型层&#xff1f; Models Layer的作用是定义了一些通用的或特定的模型&#xff0c;用于实现网络节点设备…

【管理篇 / 恢复】❀ 07. macOS下用命令刷新固件 ❀ FortiGate 防火墙

【简介】随着苹果电脑的普及&#xff0c;很多管理员都会通过苹果电脑对飞塔防火墙进行管理。当防火墙需要命令状态下刷新固件时&#xff0c;在macOS下用命令刷新固件&#xff0c;将会是一个小小的挑战。 首先是硬件的连接&#xff0c;USB配置线的USB一头&#xff0c;接入MAC的U…

羊大师讲解每天坚持去散步,你的身体将会感受到奇迹的变化!

羊大师讲解每天坚持去散步&#xff0c;你的身体将会感受到奇迹的变化&#xff01; 每天都在忙碌的工作中度过&#xff0c;中午休息时间&#xff0c;你是否留给自己一点时间去散散步呢&#xff1f;或者晚上结束所有的工作后&#xff0c;是否会选择去散步&#xff0c;放松一下自…

学生社会实践周是什么意思

为何学校会安排社会实践周这样的活动&#xff1f;是为了让学生们走出课堂&#xff0c;接触真实的社会吗&#xff1f;还是为了让他们在实践中学习课本之外的知识和技能&#xff1f; 什么是社会实践周。简而言之&#xff0c;就是学校组织的一次为期一周的社会实践活动。在这一周…

前端结合MQTT实现连接 订阅发送信息等操作 VUE3

MQTT客户端下载 使用测试 在我之前文章中 MQTT下载基础使用 下面记录一下前端使用的话的操作 1.安装 npm i mqtt引入 import * as mqtt from "mqtt/dist/mqtt.min"; //VUE3 import mqtt from mqtt //VUE2 一、MQTT协议中的方法 Connect。等待与服务器建立连接…