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选项。