vue 实现循环

Vue 实现循环的方法
在 Vue 中,可以使用 v-for 指令来实现循环渲染列表数据。以下是几种常见的循环实现方式:
基本数组循环
<template>
<ul>
<li v-for="(item, index) in items" :key="index">
{{ item }}
</li>
</ul>
</template>
<script>
export default {
data() {
return {
items: ['Apple', 'Banana', 'Orange']
}
}
}
</script>
对象循环
<template>
<ul>
<li v-for="(value, key, index) in object" :key="key">
{{ key }}: {{ value }}
</li>
</ul>
</template>
<script>
export default {
data() {
return {
object: {
firstName: 'John',
lastName: 'Doe',
age: 30
}
}
}
}
</script>
数字范围循环
<template>
<ul>
<li v-for="n in 5" :key="n">
{{ n }}
</li>
</ul>
</template>
使用计算属性过滤循环
<template>
<ul>
<li v-for="item in filteredItems" :key="item.id">
{{ item.name }}
</li>
</ul>
</template>
<script>
export default {
data() {
return {
items: [
{ id: 1, name: 'Apple', category: 'fruit' },
{ id: 2, name: 'Carrot', category: 'vegetable' },
{ id: 3, name: 'Orange', category: 'fruit' }
]
}
},
computed: {
filteredItems() {
return this.items.filter(item => item.category === 'fruit')
}
}
}
</script>
嵌套循环
<template>
<div v-for="group in groups" :key="group.id">
<h3>{{ group.name }}</h3>
<ul>
<li v-for="item in group.items" :key="item.id">
{{ item.name }}
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
groups: [
{
id: 1,
name: 'Fruits',
items: [
{ id: 1, name: 'Apple' },
{ id: 2, name: 'Banana' }
]
},
{
id: 2,
name: 'Vegetables',
items: [
{ id: 3, name: 'Carrot' },
{ id: 4, name: 'Broccoli' }
]
}
]
}
}
}
</script>
注意事项
- 始终为循环项提供唯一的
key属性,这有助于 Vue 高效地更新 DOM - 避免在模板中使用复杂的逻辑,可以将复杂逻辑移至计算属性或方法中
- 当数据变化时,Vue 会自动重新渲染循环内容
- 在 Vue 3 中,
v-for的优先级高于v-if,建议将两者分开使用







