Vue3的Watch和computed怎么使用

发布时间:2022-03-07 15:03:47 作者:iii
来源:亿速云 阅读:192

本篇内容介绍了“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怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. Vue中methods computed 和 watch 的区别
  2. Vue中Computed和Watch的区别及其用法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

vue watch computed

上一篇:怎么用CSS实现在新窗口打开链接

下一篇:Vue3响应性基础API实例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》