前言:
Vue 通过 watch 选项提供了一个更通用的方法,来响应数据的变化。当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。
data:{
name:'',
obj:{ name:' '}
}
- vue侦听data中普通对象
watch: {
name: function (newQuestion, oldQuestion) {
console.log('name改变了')
}
},
- vue侦听路由的变化:
watch:{
$route: function (val) {
this.id=val.query.id;
console.log(this.id);
}}
- vue侦听对象中属性的变化:
watch:{
'obj.name':{
immediate: true, // immediate表示在watch中首次绑定的时候,是否执行handler,值为true则表示在watch中声明的时候,就立即执行handler方法,值为false,则和一般使用watch一样,在数据发生变化的时候才执行handler。
deep:true, // 当需要监听一个对象的改变时,普通的watch方法无法监听到对象内部属性的改变,只有data中的数据才能够监听到变化,此时就需要deep属性对对象进行深度监听。
handler:function(){
console.log('obj中的name属性发生改变了')
}
}
}