1,用处
监听数据变化,然后执行相应业务逻辑
2,写法示例(简写/完整写法)
<template>
<input v-model="a" type="text">
<div>{{ b }}</div>
<input v-model="obj.c" type="text">
</template>
<script>
export default {
data() {
return {
a: 10,
b: 0,
obj: {
c: 100
}
}
},
watch: {
// 1,简写方式,常用
// 监听变量
// a() {
// 此时当a发生变化,会执行此段逻辑
// this.b = this.a
// },
// // 监听对象中的属性
// 'obj.c'() {
// 此时当obj内的c发生变化,会执行此段逻辑
// this.b = this.obj.c
// },
// 2,完整写法(带配置项)
// (1)deep,布尔类型,是否对复杂类型深度监视,例如监听整个对象
// (2)immediate,布尔类型,初始化是立即执行一次监视方法体内的逻辑
// (3)handler,监视到数据变化时执行的方法
obj: {
deep: true,
handler() {
this.b = this.obj.c //此时只要obj内的数据有任意一个发生变化,这段逻辑就会执行
},
immediate: true
}
}
}
</script>