Vue中key原理和作用

vue2 key的作用和原理 我们在写v-for的时候都会绑定一个key值,这个key在vue中有什么作用呢,不写可以吗?目标1 key有什么作用2 如何不写key会产生什么影响3 key使用原理。 阅读详情

key的原理和作用

key 作用 :用来作为节点的唯一标识

key原理:vue中的key其实存在着一种diff算法,也正是这个diff算法,使得页面在被渲染时更加高效,什么是diff算法,其实是一种虚拟DOM算法,就是将新的虚拟DOM与重新渲染的虚拟DOM进行一个对比 vue中的key属性就是按照这个key的值来一一对比。如果匹配到一样的Node节点会便不会重新使用新的虚拟DOM进行渲染,而是采用原有虚拟DOM结构。

情景一

在使用v-for时不使用key属性(其实vue会将其默认将索引作为key的唯一标识)

下面通过一个小例子来说一下不加key的弊端或者是使用索引作为key的值的弊端

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>key的作用以及原理</title>
		<script type="text/javascript" src="../js/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<ul>
				<li v-for="(list,index) in  userinfo">{{list.username +"-"+  list.age}}</li>
			</ul>
			<button @click="add">点击添加信息</button>     
		</div>

		<script type="text/javascript">
			const vm = new Vue({
				el: "#app",
				data: {
					msg:{username:"枫叶在飘呀",age:23},
					userinfo: [{
						username: "张三",
						age: 17
					}, {
						username: "李四",
						age: 17
					}, {
						username: "王五",
						age: 17
					}]
				},
				methods:{
					add()  //用来点击向userinfo头部添加一条数据
					{
						this.userinfo.unshift(this.msg)
					}
				}
			})
		</script>
	</body>
</html>

在这里插入图片描述
在这里插入图片描述

以上便是不是用key属性或者使用索引会出现的情况

情景二

使用数组中的唯一标识还会出现那样的情况吗?
我们可以给上面的数据加一个id作为唯一标识

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>key的作用以及原理</title>
		<script type="text/javascript" src="../js/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<ul>
				<li v-for="(list,index) in  userinfo" :key="list.id">{{list.username +"-"+  list.age}}<input type="text" /></li>
			</ul>
			<button @click="add">点击添加信息</button>     
		</div>

		<script type="text/javascript">
			const vm = new Vue({
				el: "#app",
				data: {
					msg:{username:"枫叶在飘呀",age:23},
					userinfo: [{
						id:1
						username: "张三",
						age: 17
					}, {
						id:2
						username: "李四",
						age: 17
					}, {
						id:3
						username: "王五",
						age: 17
					}]
				},
				methods:{
					add()
					{
						this.userinfo.unshift(this.msg)
					}
				}
			})
		</script>
	</body>
</html>

在这里插入图片描述

总结一下使用key的优点
1.可以确定数据的唯一标识,可以通过唯一标识找到整条数据
2.可以减少DOM结构重新渲染,提高性能,因为它会有一个虚拟DOM对比算法,未发生变化的值,使用原有的虚拟DOM结构,如果有被重新渲染后的数据才会被重新渲染。

~相信你也体会到key的强大作用了吧~

Cursor AI编程工具保姆级安装指南:从下载到中文界面设置(含免费额度说明) 本文提供Cursor AI编程工具的保姆级安装与设置教程。详细指导从官网下载、安装到中文界面切换的每一步,并重点说明其每月500次高级模型调用的免费额度策略。通过个性化设置与核心插件推荐,帮助开发者快速上手,提升AI辅助编程效率。 阅读详情

相关推荐

PSM倾向匹配详细步骤和程序

目录1.安装psmatch2统计包。2.数据准备3.数据分析及命令解读4.结果解读4.1模型拟合结果,此处无太多实际意义。4.2试验组可匹配的观测概览,按照命令中设定的匹配规则,试验组有8例患者未能匹配到合适对照。4.3结果解读的重点应该是对stata新生成的中间变量的解读。4.4均衡性检验结果4.5匹配结果的图示化5.Stata命令汇总最后留下两个问题给大家思考:题目 试验设计中,匹配的目的在于确保干预效应估计是建立在可比个体之间的不同结果的基础上。最简单的匹配方式是将干预组和对照组中协变量值相同的两个个

平平淡淡,戒急用忍,一生学闭嘴。 5万+

【Vue中key的原理】

在Vue中,以key为对比算法标识,在数据修改或更新后,通过key这个唯一标识进行对比虚拟DOM,从而决定节点的重新加载以及复用。

小田是个程序员的博客欢迎你的到来呀~ 4279

实战指南 | IC模拟版图设计从零到精通,手把手带你掌握EDA工具与GDSII输出

本文提供了一份从零开始的IC模拟版图设计实战指南。详细介绍了如何搭建Linux环境、安装Cadence Virtuoso等EDA工具,并深入解析了PDK设计规则。通过手把手绘制CMOS反相器版图的实例,系统讲解了版图绘制、DRC/LVS验证、寄生参数提取、匹配设计以及ESD防护等核心技能,最终指导如何正确生成交付芯片制造厂的标准GDSII文件,帮助读者掌握完整的模拟版图设计流程。

weixin_29214691的博客 390

vue中key的作用

v-for中key的作用

qq_56507133的博客 1366

AI落地困局与破局者FDE:从技术神话到价值实干的战略转型

AI落地困局与破局者FDE:从技术神话到价值实干的战略转型 当前AI企业级应用面临三大核心挑战:业务场景深度非标化、技术落地"最后一公里"困局、以及市场竞争焦点转向实用价值。前线部署工程师(FDE)作为破局关键,通过技术-业务-产品三维交汇的复合能力,将AI从实验室推向生产环境。FDE不仅是技术架构师,更是业务价值挖掘机和产品进化传感器,通过"碎石路-高速公路"双循环模式,将定制化需求沉淀为可复用的平台能力。这种模式颠覆了传统SaaS的销售逻辑,形成基于价值的J型增长

随笔记录-分享&记忆 4003

基于STM32F103C8T6的红外循迹避障小车

编程思路:控制核心板IO口的电平(即电机驱动模块的AIN1,AIN2,BIN1,BIN2)从而控制AO1、AO2、BO1、BO2的电平高低,进而控制电机使其正转、反转、不转。由于单纯地拉高拉低电平只能让电机在转与不转的状态切换,故决定利用TIM4的两个通道分别产生两路PWM信号来控制电机速度,四个电机两个一组,同一侧的两个连接在同一个PWM上。(#include "dianji.h"文件中同时写了对循迹模块引脚的初始化)

weixin_48743503的博客 1万+

vue 中:key 的作用

vue中在进行列表渲染的时候,会默认遵守 ‘就地复用策略’ 就地复用策略: 当在进行列表渲染的时候,vue会直接对已有的标签进行复用,不会整个的将所有的标签全部重新删除和创建,只会重新渲染数据,然后再创建新的元素直到数据渲染完为止 Vue中为v-for提供了一个属性,:key key属性可以用来提升v-for渲染的效率!,vue不会去改变原有的元素和数据,而是创建新的元素然后把新的数据渲染进去 在使用v-for的时候,vue里面需要我们给元素添加一个key属性,这个key属性必须是唯一的标识. (有相同

sunhy007的博客 6539

微信小游戏审核避坑指南:如何一次性通过微信审核(附最新审核要求)

本文详细解析微信小游戏审核全流程,提供从开发到上线的关键策略,帮助开发者一次性通过审核。涵盖合规性自查、材料优化、开发环境配置、版本管理、审核材料填写技巧等核心内容,并附最新审核要求和常见驳回问题解决方案,显著提升审核通过率。

weixin_28454475的博客 1411

Vue中的key

页面上的标签都对应具体的虚拟 dom 对象(虚拟 dom 就是 js 对象), 循环中 ,如果没有唯一 key , 页面上删除一条标签, 由于并不知道删除的是哪一条! 所以要把全部虚拟 dom 重新渲染, 如果知道 key 为对应标签被删除掉, 只需要把渲染的 dom 为对应标签去掉即可!

qq_54591762的博客 2781

ROS牛耕法全覆盖规划:从算法原理到清洁机器人实战解析

本文深入解析ROS牛耕法全覆盖规划算法在清洁机器人中的应用,从算法原理到实战优化技巧全面覆盖。详细介绍了地图预处理、区域分解和路径优化等关键步骤,并分享实际案例中的解决方案,帮助开发者提升机器人清扫效率和覆盖率。

weixin_27013291的博客 392

【图像去噪】论文精读:FM2S: Self-Supervised Fluorescence Microscopy Denoising With Single Noisy Image

论文题目:FM2S: Self-Supervised Fluorescence Microscopy Denoising With Single Noisy Image —— FM2S:单噪声图像自监督荧光显微镜去噪arXiv 2024!显微图像去噪!通过可视化详细的细胞结构和生物过程,荧光显微镜具有显着先进的生物学研究。然而,由于难以精确建模固有噪声和获取干净图像进行训练,这种图像去噪任务往往面临挑战,这限制了大多数现有方法。在本文中,我们提出了一种有效的。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 408

vue中key的原理详解(超详细,收藏好)

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

常来常往,共同成长 6749

HTML粉色爱心(完整代码)

HTML语言实现粉色爱心的完整代码。

AIGC 1105

Vue 列表渲染 key的原理和作用

列表渲染 key 的原理和作用 key就是为该节点做身份标识,如果对key绑定index的值,那么很容易出现问题: 若对数据进行:逆序添加、逆序删除等破坏顺序操作,会产生没有必要的真实DOM更新——页面效果没有问题,但是效率有问题 如果解构中还包含输入类的DOM,会产生错误DOM更新——界面有问题 问题案例分析: 点击按钮,在列表的前面添加一个对象 <div id="root"> <button @click.once="add">添加一个老刘</b

qq_56303170的博客 731

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Vue中key的作用和原理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、虚拟DOM中key的作用?二、对比规则1.旧虚拟DOM中找到了与新虚拟DOM相同的key:2.旧虚拟DOM中未找到与新虚拟DOM相同的key:3. 用index作为key可能引发的问题:三. 开发中如何选择key 前言 众所周知,Vue在面试中是非常重要的,同时,Vue中key的内部原理也是经常被问到的,这篇文章,我们就来聊聊。 提示:以下是本篇文章正文内容,下面案例可供参考 一、虚拟DOM中key的作用? key是虚

m0_47998760的博客 444

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

你知道vue中key的作用和工作原理吗?说说你对它的理解。

你知道vue中key的作用和工作原理吗?说说你对它的理解。 原码中找答案:src\corelvdom\patch.js-updateChildren() 测试代码如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv=...

lvhanghmm的博客 458

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

vue key的原理和作用

key是虚拟dom对象的标识,当状态中的数据发生变化时,vue会根据新数据生成新的虚拟DOM,随后vue进行新虚拟dom和旧虚拟dom的差异对比。如果不存在对数据的逆序添加、逆序删除等破坏操作,仅用于渲染列表展示,使用index没问题。若虚拟dom中内容变了,则生成新的真实dom,随后替换掉页面中之前的真实dom。会产生没有必要的真实dom更新 ==》界面效果没问题,但效率低。若虚拟dom中内容没变,直接使用之前的真实dom。2)旧虚拟dom中未找到与虚拟dom相同的key。4、开发中如何选择key?

洋葱的博客 556

vue v-for中key的作用和原理

要点: 面试易问: 1.在vue中写了key怎么处理不写又怎么处理 2.在vue中写了key的话用index好还是用id比较好 key的作用就是给节点进行身份标识相当于每个人的身份证号 我们这边用index来作为key 在这种情况下会有问题 在数组的最前面添加一个数据 增加方法 methods:{ add(){ const p={id=“004“,name="老刘”,age:18} ...

MCCLS的博客 805

vue中key的作用和工作原理

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta name="viewport" content="initial-scale=1, maximum-scale=3, minimum-scale=1, user-scalable.

ZkD953的博客 668

vue在html中显示key,VUE中key的作用和原理

03-key的作用及原理{{item}}// 创建实例const app = new Vue({el: '#demo',data: { items: ['a', 'b', 'c', 'd', 'e'] },mounted () {setTimeout(() => {this.items.splice(2, 0, 'f')}, 2000);}});上面过程的图画重现插入过程.jpg如果不使用k...

weixin_34442215的博客 705

Vue3中key的作用和工作原理

这个key属性有什么作用呢?我们先来看一下官方的解释: key属性主要用在Vue的虚拟DOM diff算法中,在新旧nodes对比时辨识Vnodes; 如果不使用key,Vue会使用一种最大限度减少动态元素并且尽可能的尝试就地修改/复用相同类型元素的算法 而使用 key 时,它会基于 key 的变化重新排列元素顺序,并且会移除/销毁 key 不存在的元素。 先简单提一下我对VNode的理解: VNode的全称是Virtual Node,也就是虚拟节点; Vnode的本质是一个JavaScript的

ych1274816963的博客 2547

3.vue中key的作用和工作原理?

你知道vue中key的作用和工作原理吗?说说理解 唯一的确定dom元素,从而执行diff算法的时候更高效 源码中找答案:src/core/vdom/patch.js-updateChildern() 测试代码: <body> <div id=" demo"> <p v-for="item in items" :key="item">{{item}}</p> </div> <script src="../ . ./dist/vue.

weCat_s的博客 2420
上一篇: webpack打包工具使用
下一篇: jsonp原理-node篇
枫叶在飘呀
博客等级 码龄7年 96粉丝 44原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值