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大佬的无私奉献,致敬!

技术教程推荐

AI技术内参 -〔洪亮劼〕

Spring Boot与Kubernetes云原生微服务实践 -〔杨波〕

Service Mesh实战 -〔马若飞〕

手机摄影 -〔@随你们去〕

小马哥讲Spring AOP编程思想 -〔小马哥〕

体验设计案例课 -〔炒炒〕

etcd实战课 -〔唐聪〕

云原生架构与GitOps实战 -〔王炜〕

给程序员的写作课 -〔高磊〕