在前面的Options API中,我们可以通过watch选项来侦听data或者props的数据变化,当数据变化时执行某一些操作。
在Composition API中,我们可以使用watchEffect和watch来完成响应式数据的侦听;
- watchEffect用于自动收集响应式数据的依赖;
- watch需要手动指定侦听的数据源;
watchEffect的基本使用
- watchEffect传入的函数会被立即执行一次,并且在执行的过程中会收集依赖
- 只有收集的依赖发生变化时,watchEffect传入的函数才会再次执行
首先需要引入import { ref, watchEffect } from 'vue';
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21setup() {
// watchEffect: 自动收集响应式的依赖
const name = ref("kobe");
const age = ref(18);
const changeName = () => name.value = "beichen";
const changeAge = () => age.value++;
watchEffect(() => {
// 会立即执行,因为他要收集所用到了那些响应式的依赖
// 相当于watch中的immediate(立即执行)
console.log("name:", name.value, "age: ", age.value);
})
return {
name,
age,
changeName,
changeAge
}
}