【爬坑日记】vue中watch对象中某一个属性变化

233 阅读1分钟

在项目中需求是只 watch 组件中的某个对象的其中一个属性,如dataObject中的 type属性且要获取oldValue,刚开始用了深度监听deep: true方法,发现并不能获取oldValue,只是能监听到属性变化的状态

watch: {
    dataObject: {
        handler(newVal, oldVal) {
            console.log(newVal.type === oldVal.type)    // true 即此时 newVal 和 oldVal 值一样
        },
        deep: true,
    }
}

网上查阅后,正确写法

watch: {
    'dataObject.type'(newVal, oldVal) {
        console.log(newVal === oldVal)  // false
    }
}