首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么vuejs vuejs中需要:key属性?

为什么vuejs vuejs中需要:key属性?
EN

Stack Overflow用户
提问于 2017-11-20 15:30:50
回答 2查看 3.9K关注 0票数 6

我的vscode在vuejs v中需要这个属性,如

坏的

代码语言:javascript
运行
复制
<p v-for='person in people'> {{person.name}} </p>

好的

代码语言:javascript
运行
复制
<p v-for='(person, index) in people' :key='index'> {{person.name}} </p>

那么,为什么我们需要:关键属性呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-20 15:40:37

在使用vue 2.2.0+时,它是vue组件所需

在2.2.0+中,当对组件使用v时,现在需要一个键。

原来的答案:

正如“Vue.js 官方指南”中所说的

为了给Vue一个提示,使它能够跟踪每个节点的标识,从而重用和重新排序现有的元素,您需要提供一个唯一的.建议尽可能提供v-for键,除非迭代的DOM内容很简单,或者您有意依赖默认行为来获得性能增益。

您不需要使用key属性来使用v-for,但这是一个很好的实践,这就是为什么VScode的intelliSense告诉您要添加一个属性。

票数 3
EN

Stack Overflow用户

发布于 2019-01-05 06:10:08

假设数组中有项目列表。

v-for

如果我们使用v-for,它将根据它们的索引显示所有这些项。VueJ没有跟踪所有这些元素。每当对项进行任何更改时,VueJs将根据数组中项的索引替换dom中的位置。(只是替换而不是移动元素),它只是修补或替换位置(在dom中)。它不存储任何array.It项的值,不跟踪项的值。它只存储索引位置。

这方面的问题是,有时vuejs数组中的任何更改都不能根据我们的需要进行更新(请记住,在某些情况下)。如果我们希望我们的vuejs能够跟踪数组中的那些项,该怎么办。这就是:key出现在图片中的地方。

:key

现在,当我们提到关键属性(如item.id等)时,在v-for vuejs中,将直接引用这些项目。记住,vuejs不是存储位置,而是存储项目。Vuejs将跟踪数组中的所有这些项。无论何时对项进行任何更改,它都将更改dom中的那些项。(通过在dom中移动元素来更改这些项) : key 只需确保vuejs跟踪所有这些项。(每个key属性都像id一样。无论什么时候发生变化,vuejs都会使用更新的值。)

作为最终用户,我们看不到输出方面的差别(如果我们不提及:key),但是在后台会发生这样的事情。

通过这个,你肯定会发现不同的。用键控制可重用元素

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47395535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档