Vue3 watchEffect的使用教程和相关概念

 更新时间:2024年08月20日 09:05:48   作者:道长不会写代码  
Vue 3 引入了 Composition API,其中 watchEffect 是一个非常强大的工具,用于响应式地追踪依赖项的变化,本文将详细介绍 watchEffect 的使用方法和相关概念,文中有详细的代码供大家参考,需要的朋友可以参考下

简介

Vue 3 引入了 Composition API,其中 watchEffect 是一个非常强大的工具,用于响应式地追踪依赖项的变化。本文将详细介绍 watchEffect 的使用方法和相关概念。

什么是 watchEffect?

watchEffect 是 Vue 3 的 Composition API 中的一个函数,用于自动追踪其回调函数中使用的响应式状态,并在状态变化时重新执行回调函数。

watchEffect的基本使用

引入 watchEffect

在组件中使用 watchEffect 之前,需要先从 Vue 中引入它:

import { watchEffect, reactive } from 'vue';

使用 watchEffect

watchEffect 接收一个回调函数作为参数,这个回调函数会被立即执行一次,并且每当其依赖的响应式状态变化时,都会重新执行。

export default {
  setup() {
    const state = reactive({
      count: 0
    });

    watchEffect(() => {
      console.log(`count is now: ${state.count}`);
    });

    // 测试 count 的变化
    state.count++;
  }
};

在上面的例子中,count 的变化会在控制台打印出相应的值。

watchEffect的高级用法

响应特定响应式状态

watchEffect 允许你指定一个包含响应式引用的数组,来告诉 Vue 应该追踪哪些响应式状态。

export default {
  setup() {
    const state = reactive({
      count: 0,
      name: 'Vue 3'
    });

    watchEffect(() => {
      console.log(`count: ${state.count}, name: ${state.name}`);
    });

    // 只有 count 发生变化时,才会触发
    state.count++;
  }
};

执行副作用的清理

watchEffect 返回一个停止函数,可以用来停止副作用的自动重新运行,或者执行清理操作。

export default {
  setup() {
    const intervalRef = ref();

    const stop = watchEffect(() => {
      intervalRef.value = setInterval(() => {
        console.log('Interval running');
      }, 1000);
    });

    // 执行一些操作后停止 watchEffect
    setTimeout(() => {
      stop(); // 停止 watchEffect
      clearInterval(intervalRef.value); // 清理定时器
    }, 5000);
  }
};

使用 watchEffect 作为响应式引用

通过将 watchEffect 作为响应式引用,可以在其他响应式操作中使用它。

export default {
  setup() {
    const state = reactive({
      count: 0
    });

    const effect = watchEffect(() => {
      console.log(`count is now: ${state.count}`);
    });

    // 在需要的时候手动触发 effect
    state.count++;
  }
};

watchEffect与Vue 2的watch选项的区别

Vue 2 中的 watch 是一个组件选项,而 Vue 3 中的 watchEffect 是一个函数。watchEffect 提供了更灵活的副作用处理方式,并且与 Vue 3 的 Composition API 更加契合。

结语

通过本文的介绍,你应该对 Vue 3 中的 watchEffect 有了基本的了解。watchEffect 是 Vue 3 响应式系统的核心功能之一,能够极大地简化副作用的处理逻辑,提高代码的可读性和可维护性。在实际开发中,合理使用 watchEffect 将使你的 Vue 应用更加强大和灵活。

以上就是Vue3 watchEffect的使用教程和相关概念的详细内容,更多关于Vue3 watchEffect教程的资料请关注脚本之家其它相关文章!

相关文章

  • vue el-table实现递归嵌套的示例代码

    vue el-table实现递归嵌套的示例代码

    本文主要介绍了vue el-table实现递归嵌套的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • vue.js el-table虚拟滚动完整实例代码

    vue.js el-table虚拟滚动完整实例代码

    这篇文章主要给大家介绍了关于el-table虚拟滚动的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用vue.js具有一定的参考学习价值,需要的朋友可以参考下
    2022-12-12
  • Vue2.0 实现移动端图片上传功能

    Vue2.0 实现移动端图片上传功能

    本文主要介绍VUE2.0图片上传功能的实现。原理是通过js控制和input标签的方式完成这一效果,无需加载其他组件。具体实例大家大家参考下本文
    2018-05-05
  • 在Vant的基础上封装下拉日期控件的代码示例

    在Vant的基础上封装下拉日期控件的代码示例

    这篇文章主要介绍了在Vant的基础上封装下拉日期控件的代码示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • 在antd中setFieldsValue和defaultVal的用法

    在antd中setFieldsValue和defaultVal的用法

    这篇文章主要介绍了在antd中setFieldsValue和defaultVal的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • 利用v-viewer图片预览插件放大需要预览的图片

    利用v-viewer图片预览插件放大需要预览的图片

    本文介绍了v-viewer插件的安装和使用步骤,包括npm安装、在main.js文件中全局引入,以及常用的三种使用方式,文章提供了简单的布局页面效果,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-10-10
  • vue Antd 输入框Input自动聚焦方式

    vue Antd 输入框Input自动聚焦方式

    这篇文章主要介绍了vue Antd 输入框Input自动聚焦方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 一次前端Vue项目国际化解决方案的实战记录

    一次前端Vue项目国际化解决方案的实战记录

    这篇文章主要给大家介绍了关于前端Vue项目国际化解决方案的实战记录,以上只是一部分Vue项目开发中遇到的典型问题和解决方案,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • vue activated在子组件中的使用详情

    vue activated在子组件中的使用详情

    这篇文章主要介绍了vue activated在子组件中的使用,文章围绕vue activated的xingu你资料讲解展开内容并附上具体代码,需要的朋友可以参考一下
    2021-11-11
  • 在vue中高德地图引入和轨迹的绘制的实现

    在vue中高德地图引入和轨迹的绘制的实现

    这篇文章主要介绍了在vue中高德地图引入和轨迹的绘制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10

最新评论