在Vue中,v-for
指令用于基于源数据多次渲染元素或模板块。这是一个常用的指令,可以处理列表数据和对象属性。
基于数组的渲染
<ul id="app">
<li v-for="item in items">{{ item.text }}</li>
</ul>
new Vue({
el: '#app',
data: {
items: [
{ text: 'Item 1' },
{ text: 'Item 2' },
{ text: 'Item 3' },
]
}
})
基于对象的渲染
<div id="app">
<div v-for="(value, key) in object">{{ key }}: {{ value }}</div>
</div>
new Vue({
el: '#app',
data: {
object: {
firstName: 'John',
lastName: 'Doe',
age: 30
}
}
})
使用索引
<ul id="app">
<li v-for="(item, index) in items">{{ index }}: {{ item.text }}</li>
</ul>
使用 v-for
与 template
进行嵌套循环
<ul id="app">
<li v-for="item in items">
{{ item.text }}
<ul>
<li v-for="subItem in item.subItems">{{ subItem }}</li>
</ul>
</li>
</ul>
使用 key
提高列表渲染的性能
<ul id="app">
<li v-for="item in items" :key="item.id">{{ item.text }}</li>
</ul>
key
的值应该是唯一的,可能是每项的 id 或其他唯一标识。这有助于Vue跟踪每个节点的身份,在动态更新时最小化DOM元素的重新渲染。
以上代码展示了如何在Vue中使用 v-for
指令,包括基于数组和对象的循环渲染,以及如何使用索引和嵌套循环。使用 key
是一个最佳实践,可以提高大型列表的渲染性能。