Vue3 computed函数详解

computed 接收一个 getter 函数,并通过一个由 getter 函数返回的值,创建一个不可变更的响应式 ref 对象。

代码是最好的解释:

<script>
  import { createComponent, ref, computed } from '@vue/composition-api'
  export default createComponent({
    setup() {
      const count = ref(1)
      const plusOne = computed(() => count.value + 1)

      console.log(plusOne.value) // 2

      // 当count的值被变更,plusOne被触发重新计算并返回新的值。
      count.value = 8

      console.log(plusOne.value) // 9

      // 但 plusOne 不可变更。
      plusOne.value++ // 错误
    }
  })
</script>

另外,根据需要你也可以同时提供 get 和 set 函数来创建一个可写的 ref 对象。

const count = ref(1)
const plusOne = computed({
  get: () => count.value + 1,
  set: val => {
    count.value = val - 1
  }
})

plusOne.value = 1
console.log(count.value) // 0

教程来源于Github,感谢SJanJan大佬的无私奉献,致敬!

技术教程推荐

软件测试52讲 -〔茹炳晟〕

白话法律42讲 -〔周甲徳〕

性能测试实战30讲 -〔高楼〕

说透低代码 -〔陈旭〕

React Native 新架构实战课 -〔蒋宏伟〕

说透元宇宙 -〔方军〕

现代React Web开发实战 -〔宋一玮〕

后端工程师的高阶面经 -〔邓明〕

结构思考力 · 透过结构看表达 -〔李忠秋〕