美文网首页程序员vue
vue watch对象内的属性监听

vue watch对象内的属性监听

作者: 形影相随_371e | 来源:发表于2018-07-04 16:03 被阅读413次

vue可以通过watch监听data内数据的变化。通常写法是:

new Vue({
  data: {
    a: 100,
    msg:{
        channel:'音乐',
        style:'活泼'
    }
  },
  watch: {
    a: function (newval, oldVal) {
      console.log('new: %s, old: %s', newval, oldVal)
    }
  }
})

但是如果你要监听的数据是对象内的某一属性,直接watch对象的属性(eg:msg.channel)就会报错

而监听整个对象的时候(eg:msg)会发现无论何时newval和oldVal的值都是一样的,这是因为msg这个对象的指向并没有发生改变,所以需要深度监测

watch: {
    msg: {
        handler(newValue, oldValue) {
            console.log(newValue)
        },
        deep: true
    }
}

如果监听对象内的某一具体属性,可以通过computed做中间层来实现

computed: {
    channel() {
        return this.msg.channel
    }
},
watch:{
    channel(newValue, oldValue) {
        console.log('new: %s, old: %s', newval, oldVal)
        //这里面可以执行一旦监听的值发生变化你想做的操作
    }
}

我的博客

我的博客

相关文章

  • vue watch监听对象属性

    watch的作用:监听vue实例上数据的变动 示例: 一、监听对象 使用deep属性,如果queryData对象内...

  • 微信小程序之watch属性值(仿Vue)

    Vue通过监听watch属性来观测Vue实例数据的变化。 监听器的原理,将data中需监听的属性写在watch对象...

  • vue 遇到的坑

    一、watch监听数据 1、监听普通的变量 1、vue.js里面直接用watch监听对象变量,如果对象变量的属性发...

  • vue watch对象内的属性监听

    vue可以通过watch监听data内数据的变化。通常写法是: 但是如果你要监听的数据是对象内的某一属性,直接wa...

  • vue-watch的监听对象的所有属性变化,监听触发一次

    vue--watch的监听对象的所有属性变化,监听触发一次 watch很多人都在用,但是这watch中的这两个选项...

  • vue 同时监听多个值的变化

    使用computed 和watch来同时监听多个属性值。。 参考原文:vue 使用watch同时监听多个属性[ht...

  • Vue的watch和computed属性

    Vue的watch属性 Vue的watch属性可以用来监听data属性中数据的变化 可以从上述代码中实践得知,输入...

  • vue监听和webpack基本使用

    vue监听 使用keyup监听 使用watch监听文本框变化,watch 使用这个属性可以监视data中的数据变化...

  • 54-Vue路由-监听路由变化

    watch属性不仅能够监听vm数据变化,还可以监听任何对象的属性变化,比如监听路由地址的变化.这里路由对象,监听方...

  • Vue watch

    Vue中监听某个对象的属性 为了避免监听整个对象导致效率问题,可以监听某个对象的特定属性

网友评论

    本文标题:vue watch对象内的属性监听

    本文链接:https://www.haomeiwen.com/subject/keneuftx.html