欢迎光临
我们一直在努力

Vue3的Watch和computed怎么使用

本篇内容介绍了“Vue3的Watch和computed怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

computed 与 watch

computed

使用 getter 函数,并为从 getter 返回的值返回一个不变的响应式 ref 对象。

<template>

  <div>

    {{ count }}

  </div>

</template>

<script>

import { ref, computed  } from 'vue'

export default {

  setup() {

    const count = ref(1)

    const plusOne = computed(() => count.value + 1)

    console.log(plusOne.value) // 2

    plusOne.value++ // error

    return {

      count,

      plusOne

    }

  },

}

</script>

或者,它可以使用具有 get 和 set 函数的对象来创建可写的 ref 对象。

<template>

  <div>

    {{ count }}

  </div>

</template>

<script>

import { ref, computed } from 'vue'

export default {

  setup() {

    const count = ref(1)

    const plusOne = computed({

      get: () => count.value + 1,

      set: val => {

        count.value = val – 1

      },

    })

    return {

      count,

      plusOne,

    }

  },

}

</script>

watchEffect

在响应式地跟踪其依赖项时立即运行一个函数,并在更改依赖项时重新运行它。

const count = ref(0)

watchEffect(() => console.log(count.value))

// -> logs 0

setTimeout(() => {

  count.value++

  // -> logs 1

}, 100)

## watch

watch API 与选项式 API this.$watch (以及相应的 watch 选项) 完全等效。watch 需要侦听特定的 data 源,并在单独的回调函数中副作用。默认情况下,它也是惰性的&mdash;&mdash;即,回调是仅在侦听源发生更改时调用。

与 watchEffect 比较,watch 允许我们:

惰性地执行副作用;

更具体地说明应触发侦听器重新运行的状态;

访问侦听状态的先前值和当前值。

#侦听一个单一源

侦听器 data 源可以是返回值的 getter 函数,也可以是 ref:

// 侦听一个getter

const state = reactive({ count: 0 })

watch(

  () => state.count,

  (count, prevCount) => {

    /* … */

  }

)

// 直接侦听一个ref

const count = ref(0)

watch(count, (count, prevCount) => {

  /* … */

})

“Vue3的Watch和computed怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注云搜网网站,小编将为大家输出更多高质量的实用文章!

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。