我正在尝试使用“监视”来跟踪和处理产品对象的更改。因为我正在观看一个对象,而不是一个简单的字符串,比方说,我正在使用深层形式:
watch: {
product: {
handler: function (val, oldVal) {
console.log("Current = "+val.identifier);//example field
console.log("Old = "+oldVal.identifier);
},
deep: true
},
},
但是,有些事情并不完全正确,因为在这个示例中,我将更改记录到其中一个字段'identifier',旧值和新值始终相同(都显示正确的当前值)。
触发此更改的原因是什么,为什么两个值都可以相同?
答案 0 :(得分:2)
这来自Vue docs:
注意:在变异(而不是替换)对象或数组时,旧值将与新值相同,因为它们引用相同的对象/数组。 Vue没有保留pre-mutate值的副本。