如何在对象中使用Vue Watch

Nof*_*fel 3 javascript vue.js

我对它很陌生watch,并试图找出为什么我的手表在将其作为对象访问时没有触发。我看到了这个帖子,但我不清楚我的问题是否相同。以下是我的简化示例(完整示例获得了更多属性和数组属性

<div id="app">
  <input type="text" v-model.lazy="userInfo.name"> {{userInfo.name}}
</div>
Run Code Online (Sandbox Code Playgroud)

JS

new Vue({
  el: "#app",
  data: {
  userInfo: {
            name: ''
  }

  },
  methods: {

  },
  watch: {
    userInfo : {
            name(oldVal, newVal){
            console.log(oldVal +" " + newVal)
      },
    },
     deep: true
  }
})
Run Code Online (Sandbox Code Playgroud)

链接到JSFiddle

Maj*_*jid 5

将观察者更改为如下所示:

new Vue({
  el: "#app",
  data: {
    userInfo: {
      name: "null"
    }
  },
  methods: {},
  watch: {
    "userInfo.name": function(oldVal, newVal) {
      console.log(oldVal + " " + newVal);
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

请参阅此处的相同文档。检查最后一个例子。