Vue.js Vue JS监视程序不工作

Vue.js Vue JS监视程序不工作,vue.js,vuejs2,Vue.js,Vuejs2,我现在正在处理一个组件,它有一个名为item的道具,我需要观察它的变化。到目前为止,我有一块这样的手表: watch:{ item(newVal, oldVal) { // watch it console.log('Prop changed: ', newVal, ' | was: ', oldVal) } } 该项在单击按钮时获得更新,并带有新的时间戳。在Vue开发工具中,我可以看到道具正在使用该值进行更新,但观察者不工作,我甚至没有收到日志消息。正如@Bert所说的

我现在正在处理一个组件,它有一个名为item的道具,我需要观察它的变化。到目前为止,我有一块这样的手表:

watch:{
   item(newVal, oldVal) { // watch it
     console.log('Prop changed: ', newVal, ' | was: ', oldVal)
   }
}

该项在单击按钮时获得更新,并带有新的时间戳。在Vue开发工具中,我可以看到道具正在使用该值进行更新,但观察者不工作,我甚至没有收到日志消息。

正如@Bert所说的,如果
项是一个对象,并且它的道具之一发生了什么变化,则不会触发你的观察者

你能试试这个吗

watch:{
   item:{
      handler: function(newVal, oldVal) { // watch it
        console.log('Prop changed: ', newVal, ' | was: ', oldVal)
      },
      deep: true
   }
}

这有点离题,因为它涉及到我的数据结构,但仍然向我提出了一个数据问题,因为数据没有被关注。我使用带有vuejs CDN链接和复杂数据结构的.Net。VueJs不喜欢手表的这种结构。因此,对于数据项“watchme”,watch不能使用this->object.item.watchme,也不能使用watchme。因此,我必须做以下工作:

我首先需要在计算机下设置一个代理

computed:
watchme: function () {
     return object.item.watchme;
 },
然后看代理

watch:

watchme: {
          handler: function (newVal, oldVal) { // watch it
          console.log('prop changed: ', newVal, ' | was: ', oldVal)
          },
          deep: true
    }

对我来说,这很有效:

听起来你想要一块深度手表。