vue watch

var vm = new Vue({  
        el: '#app',
        data() {
          return {
            bet: {
              pokerState: 53,
              pokerHistory: 'local'
            }   
            }
        },
        watch: {
          bet: {
            handler(newValue, oldValue) {
                console.log(oldValue)
              console.log(newValue)
            },
            deep: true
          }
        }
      }); 
      vm.bet.pokerState = 30

上述代码是监听对象的变化,我并没有想监听具体属性,为什么oldValue 也是30呢,

阅读 2.6k
2 个回答

deep:true 是深度监听 具体的属性

clipboard.png

他不支持传参为具体的对象

文档链接
clipboard.png
给bet赋值一个新对象替换就可以了vm.bet = Object.assign({}, vm.bet, {pokerState:30})

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题