前端
梗概:
- 加key的目的是为diff算法添加标识
- 有相同父元素的子元素必须有唯一的 key。重复的 key 会造成渲染错误。
注意:
- 不推荐使用数组下标作为key, 因为数组的增删改查会改变数组下标,导致key重复
实例:
const app = Vue.createApp({
data() {
return {
newTodoText: '',
todos: [
{
id: 1,
title: 'Do the dishes'
},
{
id: 2,
title: 'Take out the trash'
},
{
id: 3,
title: 'Mow the lawn'
}
],
nextTodoId: 4
}
},
})
app.component('todo-item', {
template: `
<li>
{{ title }}
</li>
`,
props: ['title'],
})
app.mount('#todo-list-example')
<div id="todo-list-example">
<ul>
<todo-item
v-for="(todo, index) in todos"
:key="todo.id"
:title="todo.title"
></todo-item>
</ul>
</div>
1. 效果:
- Do the dishes
- Take out the trash
- Mow the lawn
实际应用
遍历二维数组
- vue for 命令遍历二维数组时怎么确定key
- 如果每个一维数组中都有唯一的id元素,则用改id作为key
- 实例:
v-for="(arr) in list" :key="arr[0].id"
- 实在不行,改造原数据,把内部的数组与id封装成一个对象装入外层数组中