【发布时间】:2021-05-31 11:34:26
【问题描述】:
我在深层嵌套对象上有一个watcher。我正在使用Vue.set() 向对象添加反应属性。这触发了观察者,但 newVal 和 oldVal 控制台日志都显示了已经添加了新属性的数据,而不是 oldVal 显示了在添加新属性之前它是什么。
<button @click="addData">Add</button>
data() {
return {
myData: {
time: {
}
}
}
},
watch: {
myData: {
handler(newVal, oldVal) {
console.log("NEW", newVal);
console.log("OLD", oldVal);
},
deep: true
}
},
methods: {
addData() {
this.$set(this.myData.time, 'other','testing')
}
}
【问题讨论】:
-
这能回答你的问题吗? Vuejs get old value when on change event
-
API 文档中提到你不能:VueJS 不保留对对象前值的引用:vuejs.org/v2/api/#vm-watch
-
这能回答你的问题吗? Vue watch array push same old and new values