1.属性的监听
普通的属性,直接在data中定义,然后监听即可。详见Vue基础。
2.对象属性的监听
对象中的属性,要想监听其中的某一属性值的变化,不能直接监听对象的变化。
data() {
return { user:{ name:'', age:'' } } }, computed:{ getName(){ return this.user.name } }, watch:{ getName(newValue,oldValue){ console.log(newValue) }, }
上面监听对象中的name属性,只显示的关键代码。原理是利用计算属性computed做中间层来监听对象中某个属性的变化。除此之外,也可以直接用引号把属性包裹起来,从而不用计算属性:
data() {
return { user:{ name:'', age:'' } } } watch:{ 'user.name'(newValue,oldValue){ console.log(newValue) } }
这段代码和上面的代码效果是一样的。