vue 利用watch监听对象属性的变化

在开发过程中,我们经常需要监听watch监听一个对象的变化或者对象里某一个属性的变化,但是如何来实现呢?

监听整个对象的变化
    data() {
        return {
            obj: {
                b: 1,
                c: 2
            }
        }
    },
    watch() {
        obj: {
            handler(newVal, oldVal) {
                console.log('监听obj整个对象的变化');
            },
            deep: true
        }
    }
} 
监听对象某个属性的变化
export default {
    data() {
        return {
            obj: {
                b: 1,
                c: 2
            }
        }
    },
    watch() {
        'obj.b': {
            handler(newVal, oldVal) {
                console.log('监听obj属性b的变化');
            }
        }
        'obj.c': {
            handler(newVal, oldVal) {
                console.log('监听obj属性c的变化');
            }
        }
    }
} 

或者watch配合computed

export default {
    data() {
        return {
            obj: {
                b: 1,
                c: 2
            }
        }
    },
    watch() {
        bChange() {
            console.log('监听obj对象中b属性的变化');
        }
    },
   computed() {
      bChange() {
            return this.obj.b;
        }
   }
} 

你可能感兴趣的:(vue 利用watch监听对象属性的变化)