Vue3 中 watch 与 watchEffect 的使用方法

2025-01-10 20:47:08   小编

Vue3 中 watch 与 watchEffect 的使用方法

在 Vue3 的响应式编程体系中,watchwatchEffect 是两个强大的工具,它们用于响应式数据的变化并执行相应的副作用操作。掌握这两个 API 的使用方法,能够极大提升开发效率与代码质量。

watch 函数用于监视一个或多个响应式数据源的变化,并在变化时执行回调函数。它接收三个参数:第一个参数是要监视的数据源,可以是一个 ref、reactive 对象的属性,甚至是一个返回值的函数;第二个参数是回调函数,当数据源发生变化时会被调用;第三个参数是一个可选的配置对象。

例如,监视一个简单的 ref:

import { ref, watch } from 'vue';

const count = ref(0);

watch(count, (newValue, oldValue) => {
  console.log(`新值: ${newValue}, 旧值: ${oldValue}`);
});

count.value++;

在这个例子中,每当 count 的值发生变化,watch 的回调函数就会执行,打印出新值和旧值。

watch 也可以监视多个数据源:

import { ref, watch } from 'vue';

const count1 = ref(0);
const count2 = ref(0);

watch([count1, count2], (newValues, oldValues) => {
  console.log('新值:', newValues);
  console.log('旧值:', oldValues);
});

count1.value++;
count2.value++;

此时,只要 count1count2 发生变化,回调函数都会执行。

watchEffect 则更加简洁和直观。它不需要显式指定要监视的数据源,而是自动收集回调函数中使用的所有响应式数据作为依赖。只要这些依赖中的任何一个发生变化,watchEffect 就会重新执行回调函数。

import { ref, watchEffect } from 'vue';

const count = ref(0);

watchEffect(() => {
  console.log(`count 的值是: ${count.value}`);
});

count.value++;

在这个例子中,watchEffect 自动检测到 count 的变化并重新执行回调函数。

watchEffect 还可以传入一个选项对象,用于配置副作用的执行时机、清除函数等。

watch 适用于需要精确控制监视数据源和处理新旧值的场景;而 watchEffect 则更适合于依赖关系比较简单,希望自动追踪依赖并执行副作用的情况。在实际开发中,合理运用这两个 API,能够让代码逻辑更加清晰,响应式处理更加高效。

TAGS: Vue3 使用方法 watch watchEffect

欢迎使用万千站长工具!

Welcome to www.zzTool.com