在 Vue
中,你可以通过监听数组的变化来更新界面。Vue
提供了一些特殊的语法以及 API
来实现对数组的监听。
下面是一些监听数组变化的常用方法:
push()
:向数组末尾添加一个或多个新元素;
pop()
:移除数组的最后一个元素;
shift()
:移除数组的第一个元素;
unshift()
:向数组的开头添加一个或多个新元素;
splice()
:向数组中添加或移除元素。该方法有多种用法;
sort()
:对数组的元素进行排序;
reverse()
:将数组中的元素倒置。
除此之外,Vue
还提供了一个专门用来监听数组变化的方法 Vue.set
和 Vue.delete
。
下面是一个简单的示例,演示如何在 Vue
中监听数组的变化。
<template>
<div>
<h2>动态列表</h2>
<ul>
<li v-for="(item, index) in list" :key="index">
{
{
item }}
<button @click="remove(index)">删除</button>
</li>
</ul>
<input type="text" v-model="newItem" />
<button @click="add">添加</button>
</div>
</template>
<script>
export default {
data() {
return {
list: ['苹果', '香蕉', '西瓜'],
newItem: '' // 用于保存输入框中的新元素
};
},
methods: {
add() {
this.list.push(this.newItem); // 数组末尾添加新元素
this.newItem = ''; // 清空输入框中的内容
},
remove(index) {
this.list.splice(index, 1); // 移除指定位置的元素
}
}
};
</script>
上面的代码中,我们定义了一个列表和一个输入框和添加按钮。当输入框中有内容时,点击添加按钮可以将输入框中的内容添加到列表中。列表中每个元素旁边还有一个删除按钮,点击按钮可以移除对应的元素。注意到我们使用了 v-for
指令来遍历列表,使用 :key
属性来指定每个元素的唯一标识。所有的逻辑都在 methods
属性中实现,当页面中的数据改变时,Vue
会自动更新界面。