3.watch与watcheffect的区别?
时间: 2023-11-27 07:45:25 浏览: 83
Vue3语法学习笔记
watch和watchEffect都是Vue3中的监听器,但它们在写法和用法上有一定区别,是同一功能的两种不同形态,底层都是一样的。具体区别如下:
watch需要显式地指定监听的数据源,并且需要提供一个回调函数来响应数据变化,回调函数接收两个参数,新值和旧值。watch还可以提供一些选项来控制监听行为,例如deep、immediate等。
watchEffect则是自动追踪响应式数据的变化,并在回调函数中执行相关操作。watchEffect不需要显式地指定监听的数据源,它会自动追踪响应式数据的变化,并在回调函数中执行相关操作。watchEffect的回调函数只接收一个参数,即响应式数据变化后的值。
代码示例:
```
// watch示例
watch(
() => state.count,
(newVal, oldVal) => {
console.log(`count从${oldVal}变为${newVal}`);
},
{ immediate: true }
);
// watchEffect示例
watchEffect(() => {
console.log(`count的值为${state.count}`);
});
```
阅读全文