Vue JS观察者不工作

时间:2018-06-13 15:26:41

标签: vue.js vuejs2

我现在正在开发一个组件,它有一个名为item的项目,我需要注意更改。到目前为止,我有一块这样的手表:

IMFSample

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

2 个答案:

答案 0 :(得分:6)

正如@Bert所说,如果item是一个对象并且其中一个变化是它的道具,那么你的观察者就不会被触发。

你可以试试这个:

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

答案 1 :(得分:1)

这有点离题,因为它涉及到我的数据结构,但仍然给我带来了一个问题,即数据未被监视。我将.Net与vuejs CDN链接和复杂的数据结构一起使用。 VueJs不喜欢这种手表结构。因此,对于数据项“ watchme”,使用此-> 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
    }

这对我来说很有效: