$watch
实现灵活配置 watch 的时机,满足业务逻辑复杂的监听场景!欢迎持续关注新系列文章
[Vue 补洞]
系列,用久了 Vue2 总有一些遗漏的知识点,一起通过该系列文章一起查漏补缺!
1. 作用
通过 API 的方式调用 $watch
实现监听,可以灵活在复杂业务中监听特定的值
2. 使用
1)配置项写法
- 函数写法
watch: {
arg(newValue, oldValue) {
...
}
}
- 对象写法
watch: {
arg: {
handler(newVal, oldVal) {
...
}
}
}
- 初始化时立即执行一次
watch: {
arg: {
handler(newVal, oldVal) {
...
},
immediate: true // 在初始化的时候立即执行,oldVal 第一次为 undefined
}
}
2)API 写法 $watch
注意
监听的值需要用字符串形式
假设 arg 参数是通过某些业务逻辑后才产生的变量,则可通过该方式来监听,无需在初始化时就配置监听
优点
- 避免初始化时监听一个不存在的值而报错
- 减少不必要的依赖监听次数,降低内存消耗
this.$watch('arg', {
handler (newVal, oldVal) {
console.log(newVal, oldVal)
}
})