普通的监听
<input type="text" v-model="user.name">
<input type="text" v-model="user.age">
<script>
export default {
data(){
return {
user: {
name: "",
age: 0
}
}
},
watch: {
user(newVal, oldVal){
console.log(newVal, oldVal);
}
}
}
</script>
普通的监听不能监听到user对象里层的变化
2.深度监听
<template>
<div>
<input type="text" v-model="user.name">
<input type="text" v-model="user.age">
</div>
</template>
<script>
export default {
data(){
return {
user: {
name: "",
age: 0
}
}
},
watch: {
user: {
handler(newVal, oldVal){
// user里的对象
console.log(newVal, oldVal);
},
deep: true,
}
}
}
</script>
添加了deep:true就会开启深度监听 可以监听到user对象里层的值的变化
添加immediate: true就会在页面刚打开的时候 就会自动去触发一次监听
watch: {
user: {
handler(newVal, oldVal){
// user里的对象
console.log(newVal, oldVal);
},
deep: true,
immediate: true
}
}
此时刚打开时 我们并没有给name设置值 所有侦听到undefined