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字段。是監控不到的。