Vue中的$watch監控數據
阿新 • • 發佈:2017-11-27
vue $watch <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>監控數據的變化</title>
</head>
<script type="text/javascript" src="js/vue.js" ></script>
<body>
<div id="div1">
<input type="text" v-model="name">
<h2>{{name}}</h2>
<hr>
<input type="text" v-model="age">
<h2>{{age}}</h2>
<input type="text" v-model="user.age">
<h2>{{user.age}}</h2>
</div>
</body>
<script>
let vm = new Vue({
el: "#div1",
data:{
name:'Tom',
age:18,
user:{
id:1,
age:20
}
},
watch:{
//方式一:監控vue實例的數據
age:(newValue,oldValue) => {
console.log('name的newValue值為:'+newValue+',舊值為:'+oldValue);
},
user:{
handler:(newValue,oldValue) => {
console.log('age的newValue值為:'+newValue.age+',舊值為:'+oldValue.age);
//原來的舊值已經看不見了,只能看到新的值
},
deep: true //深度監視,當對象中的屬性發生變化時會被監控
}
}
});
//方式二:監控vue實例的數據
vm.$watch('name',function(newValue,oldValue){
console.log('name的newValue值為:'+newValue+',舊值為:'+oldValue);
});
</script>
</html>
Vue中的$watch監控數據