vue watch监听对象及对应值的变化
直接通过watch监听对象,对象的属性值变化并不会触发这个监听,通过查文档发现还有一个属性deep:true,可以深入监听,
data:{
return {
eleDate:{
a: '对象a',
b: '对象b'
}
}
},
watch: {
eleDate: {
handler: (val, olVal) => {
console.log('我变化了', val, olVal)//但是val和olVal值一样
},
deep: true
}
},
但是监听到的新旧值是一样的,所以通过computed和watch使用
data:{ return { eleDate:{ a: '对象a', b: '对象b' } } }, watch: { eleDateNew: { handler: (val, olVal) => { console.log('我变化了', val, olVal) }, deep: true } }, computed: { eleDateNew() { return JSON.parse(JSON.stringify(this.eleDate)) } }