广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >VUE v-for中的:key详解
  • 947
分享到

VUE v-for中的:key详解

2024-04-02 19:04:59 947人浏览 泡泡鱼
摘要

不在v-for的标签中加入key时。 <!DOCTYPE html> <html lang="en"> <head> <meta c

不在v-for的标签中加入key时。


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta Http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script src="../../js/vue.js"></script>
  <title>关于v-for的key</title>
</head>
<body>
  <div id="app">
    <div>
      <input type="text" v-model="name">
      <button @click="add">添加</button>
    </div>
    <ul>
      <li v-for="(item, index) in list">
        <input type="checkbox"> {{item.name}}
      </li>
    </ul>
  </div>
  <script type="text/javascript">
    const app = new Vue({
      el: '#app',
      data() {
        return {
          name: '',
          newId: 3,
          list: [
            { id: 1, name: '张三' },
            { id: 2, name: '李四' },
            { id: 3, name: '王五' }
          ],
        };
      },
      computed: {
      },
      methods: {
        add() {
          //注意这里是unshift
          this.list.unshift({ id: ++this.newId, name: this.name })
          this.name = ''
        }
      },
    });
  </script>
  <style scoped>
  </style>
</body>
</html>

在我们选中李四并添加赵六后,被选中的人变成了张三。

在这里插入图片描述

在这里插入图片描述

再来看v-for有key的情况:


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script src="../../js/vue.js"></script>
  <title>关于v-for的key</title>
</head>
<body>
  <div id="app">
    <div>
      <input type="text" v-model="name">
      <button @click="add">添加</button>
    </div>
    <ul>
      <li v-for="(item, index) in list" :key="item.id">
        <input type="checkbox"> {{item.name}}
      </li>
    </ul>
  </div>
  <script type="text/javascript">
    const app = new Vue({
      el: '#app',
      data() {
        return {
          name: '',
          newId: 3,
          list: [
            { id: 1, name: '张三' },
            { id: 2, name: '李四' },
            { id: 3, name: '王五' }
          ],
        };
      },
      computed: {
      },
      methods: {
        add() {
          //注意这里是unshift
          this.list.unshift({ id: ++this.newId, name: this.name })
          this.name = ''
        }
      },
    });
  </script>
  <style scoped>
  </style>
</body>
</html>

在这里插入图片描述

在这里插入图片描述

在我们选中李四并添加赵六后,被选中的人还是 李四,没有变化。

这是因为vue底层的Diff算法导致的。diff算法的处理方法是对操作前后的dom树同一层的节点进行对比,一层一层对比,如下图:

在这里插入图片描述

当某一层有很多相同的节点时,也就是列表节点时,Diff算法的更新过程默认情况下也是遵循以上原则。

比如一下这个情况:

在这里插入图片描述

我们希望可以在B和C之间加一个F,Diff算法默认执行起来是这样的:

在这里插入图片描述

即把C更新成F,D更新成C,E更新成D,最后再插入E,是不是很没有效率?

所以我们需要使用key来给每个节点做一个唯一标识,Diff算法就可以正确的识别此节点,找到正确的位置区插入新的节点。

在这里插入图片描述

vue中列表循环需加:key=“唯一标识” 唯一标识可以是item里面id index等,因为vue组件高度复用增加Key可以标识组件的唯一性,为了更好地区别各个组件 key的作用主要是为了高效的更新虚拟DOM。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: VUE v-for中的:key详解

本文链接: https://www.lsjlt.com/news/158433.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • VUE v-for中的:key详解
    不在v-for的标签中加入key时。 <!DOCTYPE html> <html lang="en"> <head> <meta c...
    99+
    2022-11-12
  • 详解vue中v-for的key唯一性
    目录1. DOM Diff2. 为同一层的相同类型的元素添加 key 属性3. key 不能是 index 下标值1. DOM Diff 要想真正了解 key 属性的存在意义,还真得...
    99+
    2022-11-12
  • vue v-for中key的原理详析
    目录前言key是什么逻辑设置key与不设置key 的区别设置key值一定能提高diff效率吗?原理分析最后前言 最近在面试的时候,面试官问我说v-for的key值是用来做什么的,我说...
    99+
    2022-11-13
  • 如何理解VUE v-for中的key
    今天就跟大家聊聊有关如何理解VUE v-for中的key,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。不在v-for的标签中加入key时。<!DOCTYPE ...
    99+
    2023-06-21
  • vue v-for中key的原理是什么
    这篇文章主要介绍“vue v-for中key的原理是什么”,在日常操作中,相信很多人在vue v-for中key的原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue ...
    99+
    2023-06-30
  • vue中v-for的key唯一性是什么
    这篇文章主要介绍vue中v-for的key唯一性是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. DOM Diff要想真正了解 key 属性的存在意义,还真得从 DOM Diff 说起,并不需要深入了解 DO...
    99+
    2023-06-15
  • Vue深入理解之v-for中key的真正作用
    目录前言第一种: key 采用 index第二种:key 采用唯一 ID总结前言 大家应该都知道, v-for 中 key 最常用的绑定方式有两种: 第一种用 index第二种用 唯...
    99+
    2022-11-13
  • vue中v-for为什么要加key值
    这篇文章主要为大家展示了“vue中v-for为什么要加key值”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue中v-for为什么要加key值”这篇文章吧。v...
    99+
    2022-10-19
  • vue中v-for指令的key值可以是index吗
    本篇内容介绍了“vue中v-for指令的key值可以是index吗”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!为什么 v-for 的 ke...
    99+
    2023-06-28
  • 一文带你详细了解Vue中的v-for
    目录v-forv-set重绘和回流虚拟DOMcomputed计算属性总结v-for 作用: 列表渲染,所在标签结构,按照数据数量,循环生成。指令写在谁身上,就循环创建谁 1.语法: ...
    99+
    2022-11-13
    vue的v-for的使用 vue的v-for循环 vue的v-for用法
  • Vue中的v-for列表循环示例详解
    目录前言1. v-for1.1 数组1.2 对象2. v-for的key补充:v-for中key属性的意义总结前言 在电商项目的开发中,会用到这样一个问题:商品的陈列我们如果使用原生...
    99+
    2022-11-13
    vue中的for循环 vue循环列表 vue使用for循环
  • 详解vue中v-for和v-if一起使用的替代方法template
    目录版本目标效果说明解决方法核心代码片段Car.vuevue中v-for和v-if一起使用的替代方法template 版本 vue 2.9.6element-ui: 2.15.6 目...
    99+
    2022-11-13
  • Vue中v-for循环key属性注意事项有哪些
    这篇文章将为大家详细讲解有关Vue中v-for循环key属性注意事项有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。当Vue用 v-for 正在更新已渲染过的元素列表...
    99+
    2022-10-19
  • vue如何在v-for中解构
    小编给大家分享一下vue如何在v-for中解构,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在 v-for 中解构你知道你可以在 v-for ...
    99+
    2023-06-27
  • vue v-for遍历循环时key值报错怎么办
    小编给大家分享一下vue v-for遍历循环时key值报错怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一 、问题如下:[...
    99+
    2022-10-19
  • Vue中指令v-bind动态绑定及与v-for结合使用详解
    目录前言:一、 v-bind动态绑定class1. v-bind动态绑定class(对象语法)2. v-bind动态绑定class(数组用法)3.v-bind动态绑定sty...
    99+
    2022-11-13
  • Vue中列表渲染指令v-for的基本用法详解
    目录一、原理概述二、基本用法(1)v-for循环普通数组(2)v-for循环对象(3)v-for循环对象数组(4)v-for迭代整数 一、原理概述 v-for指令时在模板编...
    99+
    2023-05-17
    Vue列表渲染指令v-for使用 Vue列表渲染指令v-for Vue列表渲染v-for Vue v-for
  • Vue3中v-if和v-for优先级实例详解
    目录在vue2中应尽量避免二者同时使用vue3中的改变结论补充:注意事项总结在vue2中应尽量避免二者同时使用 vue 2.x官方链接 当 v-if 与 v-for 一起使用时,v-...
    99+
    2022-11-13
  • Vue中的v-if和v-for实例分析
    本文小编为大家详细介绍“Vue中的v-if和v-for实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue中的v-if和v-for实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、作用v-if ...
    99+
    2023-06-27
  • vue中的v-show,v-if,v-bind的使用示例详解
    目录vue第四课:v-show,v-if,v-bind的使用1,v-show指令2,v-if指令3,v-bind指令vue第四课:v-show,v-if,v-bind的使用 1,v-...
    99+
    2023-05-14
    vue v-show vue v-if vue v-bind
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作