Watch effect是什么

本人github

watchEffect 是 Vue 3 中的一个 Composition API 函数,用于立即运行一个函数并响应性地追踪其依赖项。当依赖项(响应式引用或计算属性)发生变化时,该函数会自动重新运行。

这与 Vue 2 中的 watch 有些不同,因为 watch 通常用于观察单个响应式属性或计算属性,而 watchEffect 可以自动追踪多个响应式依赖。

基本用法

import {
    
     ref, watchEffect } from 'vue';

export default {
    
    
  setup() {
    
    
    const count = ref(0);
    const doubled = ref(0);

    watchEffect(() => {
    
    
      console.log(`count is: ${
      
      count.value}`);  // 自动追踪 count
      doubled.value = count.value * 2;  // 自动追踪 doubled
    });

    return {
    
    
      count,
      doubled
    };
  }
}

在这个例子中,watchEffect 会立即运行一次,并且每当 countdoubled 发生变化时都会重新运行。

停止观察

watchEffect 返回一个停止观察的函数,你可以调用这个函数来停止观察:

const stopWatch = watchEffect(() => {
    
    
  // 你的代码
});

// 停止观察
stopWatch();

watch 的比较

  • watchEffect 更为自动和便捷,因为它会自动追踪所有响应式依赖。
  • watch 更为灵活,因为它允许你观察单个响应式引用或计算属性,并提供旧值和新值。

选择哪一个取决于你的具体需求。如果你需要更多的控制和灵活性,可能会选择 watch。如果你想要一个更简单和自动的解决方案,watchEffect 可能更适合你。

猜你喜欢

转载自blog.csdn.net/m0_57236802/article/details/132841377