VUE:key属性的作用

在 Vue.js 中,key属性的主要作用是帮助 Vue 在进行 DOM 更新时,能够更准确地识别哪些节点可以复用。

当key值发生变化时,Vue 会执行以下步骤:

1.查找旧节点:Vue 会查找虚拟 DOM 中具有旧key值的节点。

2.匹配新节点:Vue 会尝试在新的虚拟 DOM 树中查找具有相同key值的新节点。

3.更新或复用节点:如果找到了具有相同key值的新节点,Vue 会尝试复用(即"就地更新")旧节点。这意味着 Vue 会尽量重用现有的 DOM 元素,而不是销毁并重新创建它。这可以通过更新节点的属性、事件监听器等来实现,而不必经历完整的 DOM 操作,从而提高性能。如果没有找到具有相同key值的新节点,Vue 会销毁旧节点,并创建新节点。

4.插入或移动节点:如果新节点的位置与旧节点的位置不同,Vue 会执行 DOM 移动操作,而不是重新创建和插入新节点。这也有助于提高性能。

示例1:

html 复制代码
<template>
  <div class="page">
    <div >
      <span v-for="(item, index) in arr" :key="index">{{ item }}</span>
    </div>
    <button @click="changeArr()"></button>
  </div>
</template>
<script setup lang="ts">
import { ref } from "vue";
const arr = ref([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
const changeArr = () => {
  arr.value.pop();
};
</script>

当点击按钮时,前面9个key值相同的节点将会复用而不是删除。

相关推荐
鸽芷咕5 小时前
KingbaseES NFS部署实战:环境变量缺失与权限报错排查指南
前端·chrome
Fighting_p5 小时前
【FileShowCom 组件】文件预览:图片预览 el-image,其余文件预览打开新窗口或者下载
开发语言·前端·javascript
Ting.~5 小时前
从 0 到 1 搭建 Vue 项目
vue.js·前端框架
a1117765 小时前
Web3D 在线3D模型骨骼动画编辑器(开源 Reze Studio)
前端·3d·开源·html
柳杉5 小时前
有了大屏设计稿还不够,我又用 gpt-image-2把里面的素材扒了出来
前端·three.js·数据可视化
朝阳395 小时前
react 实战【svg 图片】插件 vite-plugin-svgr 的使用
前端·javascript·react.js
heiqizero5 小时前
spark01-创建RDD
linux·前端·python
水木流年追梦5 小时前
CodeTop Top 300 热门题目8-字符串解码
linux·运维·服务器·前端·算法·leetcode
csdn_aspnet5 小时前
HTML头部元信息避坑指南,深度解析charset、lang、meta标签常见误用与SEO/可访问性影响
javascript·meta·html·seo·title
Coffeeee5 小时前
用了一段时间的AI了,忍不住想吐点槽,你的AI帮你提效了吗?
前端·人工智能·程序员