修改data中的数组,数组发生改变,页面未发生改变
- 可通过
$set
方法来设置数组的值,该方法有三个参数,第一个是要被设置值的目标对象,第二个是设置值在数组中的索引,第三个是要设置的值
<template>
<div class="home">
<ul>
<li v-for="(item, index) in demoArr"
:key="index">
{{item}}
</li>
</ul>
<button @click="btn1">button1</button>
<button @click="btn2">button2</button>
</div>
</template>
<script>
export default {
name: 'Home',
data () {
return {
demoArr: [1, 2, 3]
}
},
methods: {
btn1 () {
this.demoArr[0] = this.demoArr[0] + 1
},
btn2 () {
this.$set(this.demoArr, 0, this.demoArr[0] + 1)
}
}
}
</script>
修改对象的属性,但是页面的值没有发生改变
<template>
<div class="home">
<ul>
<li>
{{demoObj.demo}}
</li>
</ul>
<button @click="btn1">button1</button>
<button @click="btn2">button2</button>
</div>
</template>
<script>
export default {
name: 'Home',
data () {
return {
demoObj: {
}
}
},
created () {
},
methods: {
btn1 () {
this.demoObj.demo = 'aaaaa'
},
btn2 () {
this.$set(this.demoObj, 'demo', 'aaa')
}
}
}
</script>