vue2的數(shù)據(jù)綁定是基于 Object.defineProperty 有的時(shí)候,會(huì)出現(xiàn)數(shù)據(jù)更新視圖無法更新的情況。例如:
<template>
<div class="contariner">
<h1>{{ form.age || '暫無內(nèi)容'}}</h1>
<a-button type="primary" @click="change">更改age的值</a-button>
</div>
</template>
<script>
export default {
data() {
return {
form: {
name: '柯柯'
}
}
},
methods: {
change () {
this.form.age = Math.floor(Math.random()*100)
console.log(this.form, this.form.age, );
}
}
}
</script>
解決方法:
1、使用官方提出的this.$set
this.$set(需要改變的對(duì)象,"需要改變的對(duì)象屬性","新值")
this.$set(this.form, 'age', Math.floor(Math.random()*100))
2、強(qiáng)制更新數(shù)據(jù)
this.$forceUpdate()