使用$ watch跟踪更改

时间:2016-12-13 21:40:08

标签: vue.js

我正在尝试使用“监视”来跟踪和处理产品对象的更改。因为我正在观看一个对象,而不是一个简单的字符串,比方说,我正在使用深层形式:

    watch: {
        product:  {
            handler: function (val, oldVal) {
                console.log("Current = "+val.identifier);//example field
                console.log("Old = "+oldVal.identifier);
            },
            deep: true
        },
    },
但是,有些事情并不完全正确,因为在这个示例中,我将更改记录到其中一个字段'identifier',旧值和新值始终相同(都显示正确的当前值)。

触发此更改的原因是什么,为什么两个值都可以相同?

1 个答案:

答案 0 :(得分:2)

这来自Vue docs

  

注意:在变异(而不是替换)对象或数组时,旧值将与新值相同,因为它们引用相同的对象/数组。 Vue没有保留pre-mutate值的副本。