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 } }