VUE的watch监听对象

因为普通监听对象时,其实监听的该对象存放的堆地址,只有声明关键子字(deep: true)才能监听整个对象中所有属性变化;

当然如果监听的对象只有一两个属性,也可以直接分别监听其属性;
//声明对象
data() {
  return {
    obj: {
      name: '黄国华'
    }
  }
},
watch: {
  obj: {
    handler: function(newVal, oldVal) {
      console.log(newVal, oldVal);  //因为对象为引用类型数据,所以新旧值其实是同一个,没有差异
    },
    deep: true,  //关键字,只有声明deep: true才能监听到整个对象的变化
    immediate: true  //关键字, 此关键字声明为true时,监听对象的初始化就会触发监听事件
  }
},
//验证一下
mounted() {
  this.obj.name = '你变了o(╥﹏╥)o';
}
watch监听对象

猜你喜欢

转载自www.cnblogs.com/lianchenxi/p/11731101.html