数据的单个监听以及多个监听还有深度监听的不同
watch监听单个,computed监听多个
当watch监听的是复杂数据类型的时候需要做深度监听(写法如下)
<body>
<div id='app'>
<input type="text" v-model='msg.text'>
</div>
</body>
<script type="text/javascript" src="vue.js"></script>
<script type="text/javascript">
new Vue({
el:'#app',
data(){
return {
//msg:''
msg:{
text:''
}
}
},
watch:{
// msg(newval,oldval){
// if(newval=='fck'){
// alert('fck')
// }
// }
msg:{
handler(val){
if(val.text=='fck'){
alert(val.text)
}
},
deep:true//开启深度监听
}
}
})
</script>
computed 监视对象,写在了函数内部, 凡是函数内部有this.相关属性,改变都会触发当前函数
<body>
<div id='app'>
<input type="text" v-model='n1'>
<input type="text" v-model='n2'>
{{result}}
</div>
</body>
<script type="text/javascript" src="vue.js"></script>
<script type="text/javascript">
new Vue({
el:'#app',
data(){
return {
n1:'',
n2:'',
n3:''
}
},
computed:{
result(){
return Number(this.n1)+Number(this.n2)
}
},
})
</script>