广告
返回顶部
首页 > 资讯 > 精选 >vue中key的作用是什么
  • 120
分享到

vue中key的作用是什么

2023-06-14 23:06:17 120人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关Vue中key的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。为什么要使用VueVue是一款友好的、多用途且高性能的javascript框架,使用vue

这篇文章将为大家详细讲解有关Vue中key的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

为什么要使用Vue

Vue是一款友好的、多用途且高性能的javascript框架,使用vue可以创建可维护性和可测试性更强的代码库,Vue允许可以将一个网页分割成可复用的组件,每个组件都包含属于自己的htmlCSS、JavaScript,以用来渲染网页中相应的地方,所以越来越多的前端开发者使用vue。

一、使用key管理可复用的元素

相关示例如下所示:

<!DOCTYPE html><html>    <head>        <meta charset="utf-8">        <title>v-if-key</title>    </head>    <body>        <div id="app">            <template v-if="Input === 'username'">                <label>用户名:</label>                <input placeholder="请输入你的用户名">            </template>            <template v-else>                <label>邮箱:</label>                <input placeholder="请输入你的邮箱">            </template>            <button v-on:click="changeInput">切换</button>        </div>        <script src="../../plugings/vue.js"></script>        <script>            var vm = new Vue({                el: "#app",                data: {                    Input: "username",                },                methods: {                    changeInput() {                        if(this.Input === 'username') {                            this.Input = 'email';                        } else {                            this.Input = 'username';                        }                    }                }            })        </script>    </body></html>

当输入用户名阶段,输入相关的内容后相关结果如下所示:

vue中key的作用是什么

当点击切换按钮后,其相关的结果为:

vue中key的作用是什么

由以上的结果可以观察到其在用户名中输入的内容,当进行相关的切换后在邮箱的相关输入框中进行了相关的显示。

出现上述情况的原因:

  • 原理:在Vue中为了尽可能高效地渲染元素,通常会复用已有元素,而不是从头开始进行渲染,这样做可以使Vue渲染效率变得更高。

  • 示例分析:在上述示例中都使用了相同的<input>元素,Vue为了提高渲染效率,复用了<input>元素,因此在进行相关的切换中input并未被替换掉,仅仅是替换了它的placeholder属性。

(免费学习视频分享:javascript视频教程

解决方式

为input元素添加具有一个唯一值的key属性,来告诉Vue这两个元素是完全独立的,不要复用它们。

修改后其相关的代码为:

<!DOCTYPE html><html>    <head>        <meta charset="utf-8">        <title>v-if-key</title>    </head>    <body>        <div id="app">            <template v-if="Input === 'username'">                <label>用户名:</label>                <input placeholder="请输入你的用户名" key="username">            </template>            <template v-else>                <label>邮箱:</label>                <input placeholder="请输入你的邮箱" key="email">            </template>            <button v-on:click="changeInput">切换</button>        </div>        <script src="../../plugings/vue.js"></script>        <script>            var vm = new Vue({                el: "#app",                data: {                    Input: "username",                },                methods: {                    changeInput() {                        if(this.Input === 'username') {                            this.Input = 'email';                        } else {                            this.Input = 'username';                        }                    }                }            })        </script>    </body></html>

关键代码如下所示:

vue中key的作用是什么

二、重用和重新排序现有元素

相关的示例代码如下所示:

<!DOCTYPE html><html>    <head>        <meta charset="utf-8">        <title>v-for-key</title>    </head>    <body>        <div id="app">            <p>                ID:<input type="text" v-model="bookId">                书名:<input type="text" v-model="bookName">                <input type="button" @click="add" value="增加">            </p>            <p v-for="item in items">                <input type="checkbox">                <span>ID:{{item.id}}, 书名:{{item.name}}</span>            </p>        </div>        <script src="../../plugings/vue.js"></script>        <script>            var vm = new Vue({                el: "#app",                data: {                    bookId: '',                    bookName: '',                    items: [                        {id: 1, name: "1"},                        {id: 2, name: "2"}                    ]                },                methods: {                    add() {                        this.items.unshift({                            id: this.bookId,                            name: this.bookName                        })                        this.bookId = '';                        this.bookName = '';                    }                }            })        </script>    </body></html>

相关的运行结果说明

开始时选中ID为1的序列

vue中key的作用是什么

新增书的相关信息后,所选中的序列变成ID为3的序列

vue中key的作用是什么

产生如上所示的原因

当Vue正在更新使用v-for渲染的元素列表时,它默认使用“就地更新”策略。如果数据项的顺序被改变,Vue将不会移动DOM元素来匹配数据项的顺序,而是就地更新每个元素,并且确保它们在每个索引位置正确渲染。

解决办法

为列表的每一项提供一个唯一的key属性。

vue中key的作用是什么

最后正确的运行结果如下所示:

vue中key的作用是什么

原理:为列表中的每一项提供一个唯一的key属性,可以给Vue一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素。

注意:key属性的类型只能是string或者number类型。

关于vue中key的作用是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: vue中key的作用是什么

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

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

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

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

下载Word文档
猜你喜欢
  • vue中key的作用是什么
    这篇文章将为大家详细讲解有关vue中key的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。为什么要使用VueVue是一款友好的、多用途且高性能的JavaScript框架,使用vue...
    99+
    2023-06-14
  • vue的key是什么
    本教程操作环境:windows7系统、vue3版,DELL G3电脑。1. key是什么key在Vue是DOM对象的标识;key是给每一个vnode的唯一id,也是diff的一种优化策略,可以根据key,更准确, 更快的找到对应的vnode...
    99+
    2023-05-14
    Vue
  • react中key的作用是什么
    本文小编为大家详细介绍“react中key的作用是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“react中key的作用是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。...
    99+
    2022-10-19
  • Vuejs中key值的作用是什么
    这篇文章给大家介绍Vuejs中key值的作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。key 的一个错误使用——使用 index 作为 key不知道你在写 v-for 的时候,会不会直接使用 index 作为...
    99+
    2023-06-15
  • vue中的key有什么用
    小编给大家分享一下vue中的key有什么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!key到底有什么用途 先来看官方解释 :key属性主要用在vue的虚拟DOM算法(diff算法), 在新旧nodes对比时辨识VNod...
    99+
    2023-06-22
  • vue v-for中key的原理是什么
    这篇文章主要介绍“vue v-for中key的原理是什么”,在日常操作中,相信很多人在vue v-for中key的原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue ...
    99+
    2023-06-30
  • 在vue中为什么不能用index作为key
    目录一、key的作用是什么?二、什么是虚拟DOM?三、什么是diff算法四、为什么不能用index作为key?(1)index不能作为key--情景一(2)index不能作为key-...
    99+
    2022-11-13
  • Vue3中key的作用和工作原理是什么
    这篇文章主要介绍“Vue3中key的作用和工作原理是什么”,在日常操作中,相信很多人在Vue3中key的作用和工作原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue3中key的作用和工作原理是什么...
    99+
    2023-06-20
  • vue中v-for的key唯一性是什么
    这篇文章主要介绍vue中v-for的key唯一性是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. DOM Diff要想真正了解 key 属性的存在意义,还真得从 DOM Diff 说起,并不需要深入了解 DO...
    99+
    2023-06-15
  • SQL FOREIGN KEY约束的作用是什么
    SQL FOREIGN KEY约束用于确保关系数据库中的数据完整性。它定义了表之间的关系,并防止在相关表之间产生不一致的数据。FOR...
    99+
    2023-10-12
    SQL
  • vue为什么使用key
    vue使用key的原因是:需要使用key来标识每个节点,这样的话diff算法才能正确的识别此节点,此做法主要是为了能够高效的更新虚拟dom。...
    99+
    2022-10-18
  • Vue中key的作用及原理详解
    目录1. 先说结论2. key的作用2.1 举一个例子2.2 修改一下上述示例2.3 再修改一下示例3. key的实现原理1. key为index的情况。2. key为id的情况。总...
    99+
    2022-11-12
  • vue中vue-full-calendar的作用是什么
    vue-full-calendar是一个基于Vue.js的全功能日历插件,可以用于展示、创建、编辑和删除事件。它提供了丰富的配置选项...
    99+
    2023-09-22
    vue
  • vue中nextTick的作用是什么
    这篇文章给大家介绍vue中nextTick的作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。为什么要用nextTick请看如下一段代码new Vue({  ...
    99+
    2022-10-19
  • Vue中Watcher的作用是什么
    Vue中Watcher的作用是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。就是这个函数:// Line-7531  ...
    99+
    2022-10-19
  • Vue中transition的作用是什么
    Vue中transition的作用是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。了解构建过程既然要看源码,就先让Vue在开发环境跑起...
    99+
    2022-10-19
  • vue中loader的作用是什么
    vue中loader可以用来解析和转换.vue文件,提取出每个语言块,有必要的情况下会分别把他们交给对应的loader去处理,它还能够在.vue文件中添加额外的自定义块来实现项目的特殊需求。...
    99+
    2022-10-12
  • vue的key怎么使用
    本篇内容主要讲解“vue的key怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue的key怎么使用”吧!在vue中,key是DOM对象的标识,是给每一个vnode的唯一id,也是dif...
    99+
    2023-07-04
  • vue $el的作用是什么
    这篇文章主要介绍了vue $el的作用是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue $el的作用是什么文章都会有所收获,下面我们一起来看看吧。Vue $el是Vue实例的一个属性,用于获取Vue实...
    99+
    2023-07-05
  • vue中v-for为什么要加key值
    这篇文章主要为大家展示了“vue中v-for为什么要加key值”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue中v-for为什么要加key值”这篇文章吧。v...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作