vue3【详解】计算属性 computed

用于描述依赖响应式状态的复杂逻辑

  • 缓存计算结果(计算属性仅会在其响应式依赖更新时才重新计算)
<script setup>
import { ref, computed } from "vue";

const firstName = ref("朝");
const lastName = ref("阳");

const fullName = computed(() => firstName.value + " " + lastName.value);
</script>
<template>
  <sapn>{{ fullName }}</sapn>
</template>
  • computed() 的参数为一个 getter 函数,返回依赖响应式状态变化的一个值。(与普通函数相比,它能缓存返回值,提升了性能)
  • getter 函数不能有任何副作用:不能改变其他状态、做异步请求或者更改 DOM (需要随依赖变化,创建副作用时,请使用 侦听器 watch
  • 计算属性返回的值是一个“临时快照”,应该被视为只读的,并且永远不应该直接更改它,而应该更新它所依赖的源状态来触发新的计算。
  • 某些特殊场景可能需要通过修改计算属性返回的值更新它所依赖的源状态
<script setup>
import { ref, computed } from 'vue'

const firstName = ref('John')
const lastName = ref('Doe')

const fullName = computed({
  // getter
  get() {
    return firstName.value + ' ' + lastName.value
  },
  // setter
  set(newValue) {
    // 注意:我们这里使用的是解构赋值语法
    [firstName.value, lastName.value] = newValue.split(' ')
  }
})
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝阳39

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值