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值相同的节点将会复用而不是删除。

相关推荐
徐安安ye3 分钟前
FlashAttention前端优化:Token合并、MergeNet与冗余计算消除
前端
吃炸鸡的前端5 分钟前
react-hook-from从入门到精通
前端·javascript·react.js
来恩100322 分钟前
jQuery对Ajax的支持
前端·ajax·jquery
KaMeidebaby24 分钟前
卡梅德生物技术快报|抗体的制备与纯化:分子实验实操:番茄 sHSP 重组表达与抗体的制备与纯化工艺
前端·数据库·人工智能·其他·算法·百度·新浪微博
IT_陈寒27 分钟前
Vite热更新把我整不会了,原来还要这样配!
前端·人工智能·后端
恋猫de小郭27 分钟前
AI 时代,谷歌都在 Android 官方做了哪些支持?
android·前端·flutter
zzqssliu36 分钟前
跨境独立站多端适配开发:多语言+多货币+跨平台同步技术实战
前端·javascript·php
Chengbei1137 分钟前
AI赋能Chrome MCP × JS逆向Skill自动化JS逆向助力挖洞与绕过实战(小白也能学会)
javascript·人工智能·chrome·网络安全·自动化·系统安全·安全架构
怕浪猫40 分钟前
Electron 开发实战(五):文件系统与本地数据持久化全解
前端·javascript·electron
云水一下1 小时前
HTML5 从入门到精通:语义为王——结构标签让网页会“说话”
前端·html5