Vue.js 什么';将“按属性跟踪”与“v-for”一起使用有什么意义?

Vue.js 什么';将“按属性跟踪”与“v-for”一起使用有什么意义?,vue.js,Vue.js,我是vuejs的新手。在我看来,按属性划分的轨迹有点难以理解。下面的示例显示track by属性与数组中的重复元素有关。但是v-for属性是如何在引擎盖下实现的呢?当数组中存在重复元素时,会发生什么行为?track by=“$index”会产生怎样的影响 newvue({ el:“#应用程序”, 数据:函数(){ 返回{ 项目:[ “用户已连接”, "讯息",, "讯息",, “用户已连接”, “消息” ] } }, 方法:{ 附加项:功能(项目){ 此.items.push(item); }

我是vuejs的新手。在我看来,按属性划分的轨迹有点难以理解。下面的示例显示track by属性与数组中的重复元素有关。但是v-for属性是如何在引擎盖下实现的呢?当数组中存在重复元素时,会发生什么行为?track by=“$index”会产生怎样的影响

newvue({
el:“#应用程序”,
数据:函数(){
返回{
项目:[
“用户已连接”,
"讯息",,
"讯息",,
“用户已连接”,
“消息”
]
}
},
方法:{
附加项:功能(项目){
此.items.push(item);
}
}
})

添加连接
添加消息
  • {{item}
{{items}json}
为了反应迅速,Vue尽可能重复使用DOM元素。因此,如果它已经为一个特定的项目呈现了DOM,它将保存它以便在需要再次呈现的任何时候使用。如果从数组中删除某些内容,然后再添加回,则使用现有HTML会更快

但是,当数组元素不是唯一的时,这会导致问题。Vue无法区分它们
track by
告诉Vue每个项目的哪个方面是唯一的,这样它就可以知道何时重用DOM元素。如果数组是一系列具有
id
属性的对象,则可以使用
track by='id'
。但是如果对象没有唯一的字段,
track by='$index'
将每个对象与其在数组中的位置相关联。这本质上是一个唯一的属性,因此它会抑制重复条目的错误