data:{ a:1, b:{ value:1, type:1, } }, watch:{ a(val, oldVal){//普通的watch监听 console.log("a: "+val, oldVal); }, b:{//深度监听,可监听到对象、数组的变化 handler(val, oldVal){ console.log("b.value: "+val.value, oldVal.value);//可是这两个值打印出来却都是同样的 }, deep:true } }
若是只想监听b中的value,怎么办数组
方法一:this
watch:{ a(val, oldVal){//普通的watch监听 console.log("a: "+val, oldVal); }, 'b.value':{//深度监听,可监听到对象、数组的变化 handler(val, oldVal){ console.log("b.value: "+val.value, oldVal.value);//可是这两个值打印出来却都是同样的 }, deep:true } }
方法二,借助computedspa
computed: { newNum: function () { return this.b.value } } watch:{ newNum:{ handler(val, oldVal){ console.log(oldVal); }, deep:true } }