Vue.js 监视的计算属性的代码似乎从未运行
我正在观察一个计算属性返回一个状态变量 我确信这个状态变量会因为我做的某些事情而改变。但是我的Vue.js 监视的计算属性的代码似乎从未运行,vue.js,computed-properties,Vue.js,Computed Properties,我正在观察一个计算属性返回一个状态变量 我确信这个状态变量会因为我做的某些事情而改变。但是我的watch:{}中的console.log()代码永远不会执行: computed: { simulation () { return this.$store.state.simulation } }, watch: { simulation () { console.log('simulation changed:') } } 我做错了什么?通过我们在原始帖子评论中的
watch:{}
中的console.log()
代码永远不会执行:
computed: {
simulation () {
return this.$store.state.simulation
}
},
watch: {
simulation () {
console.log('simulation changed:')
}
}
我做错了什么?通过我们在原始帖子评论中的对话,我们发现
模拟
的一个属性正在被更改,而不是整个模拟
对象。要检测此类更改,OP只需查看正在更改的仿真的特定属性,而不是整个仿真的对象。如果this.$store.state.simulation
是对象,则无法查看对象的更改属性。您可以查看对象的更改(当this.$store.state.simulation=newVal
时,但不能this.$store.state.simulation.anyProp=newVal
)
您应该使用deep-watch()来检查是否正常:您看到Vue Devtools中发生的变化了吗?是的,先生,我刚刚看到了。请注意,simulation
是一个对象,该对象的属性本身就是一个对象数组。我不确定这是否重要,只是以防万一。确实如此。看看这个:你可以试着改变你的手表来观察正在改变的模拟的特定属性。看起来我学到了一些新东西,谢谢!变化是向数组中添加了新项,这是模拟的一个属性。我想我会用别的东西。如果你愿意,你可以回答,我会接受,如果他想捕捉道具的所有变化,可以在观察者中使用deep选项。