美文网首页
Vue如何使用watch对对象内某个属性进行监听

Vue如何使用watch对对象内某个属性进行监听

作者: sxh不是帅小伙 | 来源:发表于2019-08-15 18:13 被阅读0次

普通对象上的watch:

data() {
  return {
    person: {
      id: 1,
      name: 'zs'
    }
  }
},
watch: {
      person(newVal, oldVal) {
        console.log('更新前的person:' + oldVal + ',' + '更新后的person:' + newVal);
    }
}

这样引用的话当对象身上的某项属性例如id对应的属性值改变时是不会触发watch的。

如果要使对象身上任意一个属性发生变化时触发watch,代码应修改为如下:

data() {
  return {
    person: {
      id: 1,
      name: 'zs'
    }
  }
},
watch: {
  person: {
    handler(newVal, oldVal) {
      console.log('更新前的person:' + oldVal + ',' + '更新后的person:' + newVal);
    },
    deep: true
  }
}

如果要使对象身上某一个具体的属性如person中的name变化时触发watch,代码应修改为如下:

data() {
  return {
    person: {
      id: 1,
      name: 'zs'
    }
  }
},
watch: {
  'person.name'(newVal, oldVal) {
      console.log('更新前的name:' + oldVal + ',' + '更新后的name:' + newVal);
  }
}

相关文章

网友评论

      本文标题:Vue如何使用watch对对象内某个属性进行监听

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