因为Vue是响应式的,所以当数据发生变化时,Vue会自动检测数据变化,视图会发生对应的更新。
Vue中包含了一组观察数组编译的方法,使用它们改变数组也会触发视图的更新。
- push()
- pop()
- shift()
- unshift()
- splice()
- sort()
- reverse()
<body>
<div id="app">
<ul>
<li v-for="item in letters">{{item}}</li>
</ul>
<button @click="btnClick">按钮</button>
</div>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data: {
letters: ['A', 'B', 'C', 'D', 'E']
},
methods: {
btnClick() {
//1.push方法(响应式)
this.letters.push('aaa');
//2.通过索引值修改数组中的元素(非响应式),虽然这个是非相应式的,但是可以通过splice实现,或者Vue.set方法
thiS.letters[0] = 'bbbb';
this.splice(0, 1, 'bbbbb');
//Vue.set(要修改的对象,索引值,修改后的值)
Vue.set(this.letters, 0, 'bbbbb');
//3、pop()(响应式):删除数组中的最后一个元素
this.letters.pop();
//4、shift()(响应式):删除数组中的第一个元素
this.letters.shift();
//5、unshift()(响应式):在数组的最前面添加元素
this.letters.unshift('aaa');
//6、splice(响应式)
//splice作用:删除/插入/替换元素
//删除元素:第二个参数传入你要删除几个元素
//替换元素:第二个参数,表示我们要替换几个元素,后面是用于替换前面的元素
//插入元素:第二个参数,传入0,并且后面跟上要插入的元素
//splice(start)
this.letters.splice(1, 2, 'a', 'b');
//7、sort()(响应式):排序
this.letters.sort();
//8、reverse()(响应式):反转
this.letters.reverse();
}
}
})
</script>
</body>
参考链接:
https://www.bilibili.com/video/BV1H7411j7Mc?from=search&seid=10645859101733219162