当前位置: 首页 > news >正文

vue3中使用computed

在 Vue 3 中,computed 是一个非常重要的响应式 API,用于声明依赖于其他响应式状态的派生状态。以下是 computed 的详细用法:

1. 基本用法

import { ref, computed } from 'vue'export default {setup() {const firstName = ref('张')const lastName = ref('三')const fullName = computed(() => {return firstName.value + ' ' + lastName.value})return {firstName,lastName,fullName}}
}

2.可写的计算属性

计算属性默认是只读的,但你可以通过提供 get 和 set 函数来创建一个可写的计算属性。

import { ref, computed } from 'vue'export default {setup() {const firstName = ref('张')const lastName = ref('三')const fullName = computed({// getterget() {return firstName.value + ' ' + lastName.value},// setterset(newValue) {[firstName.value, lastName.value] = newValue.split(' ')}})return {firstName,lastName,fullName}}
}

3.计算属性缓存

计算属性会基于它们的响应式依赖进行缓存。只有在相关响应式依赖发生改变时才会重新求值。

const now = computed(() => Date.now())
// 这个计算属性永远不会更新,因为 Date.now() 不是响应式依赖

计算属性和方法的区别:计算属性是基于它们的依赖进行缓存的,而方法总是会在重新渲染时再次执行函数。

// 方法 - 每次访问都会执行
function getFullName() {return firstName.value + ' ' + lastName.value
}// 计算属性 - 只有依赖变化时才会重新计算
const fullName = computed(() => {return firstName.value + ' ' + lastName.value
})

4.最佳实践

避免副作用:计算属性的计算函数应只做计算而不产生副作用(如异步请求或更改 DOM)

避免直接修改计算属性:除非你明确提供了 setter

简化模板:将复杂逻辑移到计算属性中,保持模板简洁

相关文章:

  • Python 爬虫之requests 模块的应用
  • Vue组件通信的 `$attrs`与`$listeners`的优先级
  • 高效大型语言模型推理优化综述
  • Reason-ModernColBERT论文速览:Sentence- bert-基于孪生bert网络的句子嵌入
  • 基于SpringBoot+Vue的家政服务系统源码适配H5小程序APP
  • 人脸识别流程与算法对比报告
  • ES 面试题系列「三」
  • (已开源-CVPR2024) RadarDistill---NuScenes数据集Radar检测第一名
  • Java—— IO流的应用
  • OpenLayers 加载鼠标位置控件
  • 电子人的分水岭-FPGA模电和数电
  • CMSIS-NN:2.神经网络到CMSIS-NN的转换
  • TypeScript 完全指南(三):工程化实战,搭建高效 TS 项目架构
  • keil直接生成bin文件
  • JDK21深度解密 Day 4:虚拟线程底层实现原理
  • leetcode2466,爬楼梯变体,取模注意
  • 国际前沿知识系列三:解决泛化能力不足问题
  • 29-FreeRTOS事件标志组
  • 开发者工具箱-鸿蒙AES加密解密开发笔记
  • HTTP基本概述
  • 投诉网站建设/优化seo哪家好
  • 网站服务费网络建设会计分录/网站推广多少钱
  • 网页设计开发招聘/怎么优化推广自己的网站
  • 综合门户类网站有哪些/seo怎样
  • 家用宽带怎么做网站 访问/软文推广软文营销
  • 高校网站建设近期情况说明/网站搜索优化官网