前言
vue中对于多重对象数据的监听,对象发生变化,存在监听不到的现象
比如:item3.name发生变化的时候监听不到
{
item1: {
item2: {
item3:{
name: ''
}
}
}
}
解决方法
方法一:
计算属性(推荐)
先通过计算属性得到引用类型的内部某个字段,再使用侦听器监听该字段的变化
computed: {
name() {
return this.item1.item2.item3.name
}
},
watch: {
name(newV,oldV) {
// do something
console.log(newV,oldV)
}
}
方法二:
deep深度监听
watch: {
item1: { //深度监听,可监听到对象、数组的变化
handler (newV, oldV) {
// do something, 可使用this
console.log(newV,oldV)
},
deep:true
}
}