直接对数组元素赋值,是不会更新视图的。要使用arr.splice()方法更新数组,才会更新视图。
<template>
<div>
<ul>
<li v-for="(item,i) in arr">{{item}}</li>
</ul>
<button @click="wrong">失效</button>
<button @click="correct">生效</button>
</div>
</template>
<script>
export default {
name: "Home",
data () {
return {
arr:[1,2,3]
};
},
methods: {
wrong(){
this.arr[0] = 9; // 视图不会更新,页面上还是1,2,3
},
correct(){
this.arr.splice(0,1,9); // 视图更新了,页面上是9,2,3
}
},
}
</script>
<style lang="css" scoped>
</style>