watch可以让我们监控一个值的变化。从而做出相应的反应。
示例:
<div id="app">
<input type="text" v-model="message">
</div>
<script src="./node_modules/vue/dist/vue.js"></script>
<script type="text/javascript">
var vm = new Vue({
el:"#app",
data:{
message:"",
person:{
name:""
}
},
watch:{
message:{
deep:true, #深监控,如果不写就是浅监控,只能监视普通变量。如果是对象的的属性变化就监视不到
handler(newVal, oldVal){
console.log(newVal, oldVal);
}
},
'person.name':{ #如果我们只想监控person对象的name属性。可以使用这样的写法
deep:true,
handler(newVal, oldVal){
console.log(newVal, oldVal);
}
}
}
})
</script>
注意:vue只能监听你这个对象刚初始化的时候的属性。比如上面的person对象,只有name字段,如果你在后期加上age字段。是监控不到的。