【发布时间】:2020-06-14 21:00:01
【问题描述】:
我正在尝试使用深度调用监视具有多个属性的数据对象,我需要知道在监视调用中触发了对象中的哪个属性更改。有没有办法知道处理程序中的属性。
data(){
return {
user:{
first_name:'',
last_name:'',
}
}
},
watch:{
user:{
deep:true,
handler(value){
//Here I want to know which property(first_name/last_name) change of the user object has triggered this.
}
}
}
【问题讨论】:
-
可能需要迭代对象并比较前后的值。
-
@ChrisLi 那会很乏味,如果数据对象很大,我想知道Vue js是否有任何方法提供了要知道的属性。
-
你也可以通过编程方式为每个键设置观察者,我不知道vue是否为此提供了方法。
-
@ChrisLi 当我尝试比较深度手表中的新旧值时,我发现两个对象属性都已更新为最新值,你对此有什么想法吗?
-
可能是因为它们引用了同一个对象,这是我找到的解决方法github.com/vuejs/vue/issues/2164#issuecomment-432872718
标签: javascript vue.js