vue怎样实现数组绑定
在 Vue 中实现数组绑定
Vue 提供了多种方式实现数组绑定,主要通过 v-model 和 v-for 指令完成。以下是具体实现方法:
使用 v-model 绑定数组
在表单控件中,v-model 可以直接绑定到数组,适用于多选框(checkbox)场景:
<template>
<div>
<input type="checkbox" v-model="selectedItems" value="Item1"> Item1
<input type="checkbox" v-model="selectedItems" value="Item2"> Item2
<input type="checkbox" v-model="selectedItems" value="Item3"> Item3
<p>Selected items: {{ selectedItems }}</p>
</div>
</template>
<script>
export default {
data() {
return {
selectedItems: []
};
}
};
</script>
当用户勾选复选框时,selectedItems 数组会自动更新为选中的值列表。

使用 v-for 渲染数组
通过 v-for 可以动态渲染数组内容,并支持响应式更新:
<template>
<div>
<ul>
<li v-for="(item, index) in items" :key="index">
{{ item }}
</li>
</ul>
<button @click="addItem">Add Item</button>
</div>
</template>
<script>
export default {
data() {
return {
items: ['Apple', 'Banana', 'Orange']
};
},
methods: {
addItem() {
this.items.push('New Item');
}
}
};
</script>
响应式数组方法
Vue 对以下数组方法进行了响应式封装,调用时会触发视图更新:

push()pop()shift()unshift()splice()sort()reverse()
直接通过索引修改数组项(如 this.items[0] = 'New Value')不会触发更新,需使用 Vue.set 或 this.$set:
this.$set(this.items, 0, 'New Value');
绑定对象数组
处理对象数组时,可通过属性绑定实现更复杂的交互:
<template>
<div>
<div v-for="(user, index) in users" :key="user.id">
<input v-model="user.name">
<button @click="removeUser(index)">Remove</button>
</div>
</div>
</template>
<script>
export default {
data() {
return {
users: [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' }
]
};
},
methods: {
removeUser(index) {
this.users.splice(index, 1);
}
}
};
</script>
使用计算属性处理数组
计算属性可以派生数组状态,自动响应原始数组变化:
computed: {
filteredItems() {
return this.items.filter(item => item.includes('a'));
}
}
以上方法覆盖了 Vue 中数组绑定的主要场景,根据具体需求选择合适的方式即可。






