Vue3中的watchEffect特性是什么

寻技术 VUE 2024年01月23日 129

本篇内容主要讲解“Vue3中的watchEffect特性是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue3中的watchEffect特性是什么”吧!

    watchEffect
    是 Vue3 中提供的一个新特性,用于监听响应式数据的变化,并在数据发生变化时执行指定的回调函数。

    与 Vue2 中的

    watch
    不同,
    watchEffect
    不需要指定要监听的数据,而是会自动追踪函数中使用的响应式数据,并在这些数据发生变化时重新执行回调函数。这种自动追踪的特性可以简化代码,并提高应用的性能。

    下面是一个使用

    watchEffect
    的示例:
    import { watchEffect, reactive } from 'vue'
    const state = reactive({
      count: 0
    })
    watchEffect(() => {
      console.log(state.count)
    })

    在上面的代码中,我们使用

    reactive
    函数创建了一个响应式对象
    state
    ,并使用
    watchEffect
    监听了
    state.count
    属性的变化。当
    state.count
    发生变化时,回调函数会被重新执行。

    需要注意的是,

    watchEffect
    返回一个无需停止的监听器函数。如果需要停止监听,可以调用这个监听器函数来停止监听。

    除了监听响应式数据的变化外,

    watchEffect
    还支持在回调函数中访问组件的上下文,例如
    this
    关键字和组件的计算属性等。

    下面是一个使用

    watchEffect
    访问组件计算属性的示例:
    import { watchEffect, computed } from 'vue'
    export default {
      computed: {
        doubleCount () {
          return this.count * 2
        }
      },
      mounted () {
        watchEffect(() => {
          console.log(this.doubleCount)
        })
      }
    }

    在上面的代码中,我们使用

    computed
    函数创建了一个计算属性
    doubleCount
    ,并在
    mounted
    钩子函数中使用
    watchEffect
    监听了
    doubleCount
    的变化。当
    doubleCount
    发生变化时,回调函数会被重新执行。
    关闭

    用微信“扫一扫”