在Vue中可以通过watch进行对某个值的监听,当值发生变化时,运行对应的逻辑,比如请求接口等。不会产生新的值。
一、简写的watch
<template>
<div>
<div><input type="text" v-model="num"></div>
<div>{{obj}}</div>
<div @click="obj.per.name+=1">更改属性</div>
</div>
</template>
<script>
export default {
watch:{
num(newValue,oldValue){
console.log(`num的值发生变化了新值${newValue}旧值${oldValue}`);
},
obj(newValue,oldValue){
console.log(`num的值发生变化了新值${newValue}旧值${oldValue}`);
}
},
data(){
return {
num:444,
obj:{
per:{
name:'勇敢小陈'
}
}
}
}
}
</script>
<style>
</style>
简写的不足点:没办法进行深度监视以及初始化进行监听
二、watch的完整版
<template>
<div>
<div><input type="text" v-model="num"></div>
<div>{{obj}}</div>
<div @click="obj.per.name+=1">更改属性</div>
</div>
</template>
<script>
export default {
watch:{
num(newValue,oldValue){
console.log(`num的值发生变化了新值${newValue}旧值${oldValue}`);
},
obj:{
handler(newValue,oldValue){
console.log(`num的值发生变化了新值${newValue}旧值${oldValue}`);
},
deep:true,
immediate:true
}
},
data(){
return {
num:444,
obj:{
per:{
name:'勇敢小陈'
}
}
}
}
}
</script>
<style>
</style>