javascript - 如何在对象中使用 Vue watch

标签 javascript vue.js

我是 watch 的新手,我想弄清楚为什么我的 watch 在作为对象访问时没有触发。我看到了this线程,但我不清楚我的问题是否相同。以下是我的简化示例(完整示例使用数组获得了更多属性和属性

<div id="app">
  <input type="text" v-model.lazy="userInfo.name"> {{userInfo.name}}
</div>

JS

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

  },
  methods: {

  },
  watch: {
    userInfo : {
            name(oldVal, newVal){
            console.log(oldVal +" " + newVal)
      },
    },
     deep: true
  }
})

链接到 JSFiddle

最佳答案

将观察者改成这样:

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

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

关于javascript - 如何在对象中使用 Vue watch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54925069/

相关文章:

vue.js - 如何在 Vue.js 插槽作用域中传递方法

javascript - BrowserExtension webRequest.onBeforeRequest 返回 promise

javascript - 在 Vue 中代理 webpack 开发服务器

javascript - Vuejs Webpack压缩插件不压缩

javascript - d3-transition attrTween、styleTween 方法在 d3 版本 4 中未被触发

button - 在 vuejs 的按钮中包含一个路由器链接标签

vue.js - 如何设置我的 Vue.js 站点以在每次热重载事件时清除浏览器的 Javascript 控制台?

javascript - 将脚本写入 DOM 并在 DOM 完成渲染之前让它运行

javascript - 更改 <h2> 文本中的文本 我会使用 javascript 更改 </h2> 元素

javascript - 如何在不重复 x*y=z, y*x=z 的情况下 console.log 乘法表