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

vue3 计算属性

在 Vue 3 中,计算属性(computed properties)是一种基于它们的响应式依赖进行缓存的计算值。计算属性主要用于在模板中声明式地声明依赖其他属性的计算值。它们只在相关响应式依赖发生改变时才会重新计算。

创建计算属性

在 Vue 3 中,你可以使用 Vue.computed 方法来创建一个计算属性。这个方法接受一个 getter 函数作为参数,并返回一个响应式的 ref 对象,你可以通过 .value 属性访问计算结果。

示例

假设你有一个组件,其中包含一些响应式状态和一些基于这些状态的计算值。

<script setup>
import { ref, computed } from 'vue';const firstName = ref('John');
const lastName = ref('Doe');// 创建一个计算属性
const fullName = computed(() => {return `${firstName.value} ${lastName.value}`;
});
</script><template><div><p>Full Name: {{ fullName }}</p></div>
</template>

在这个例子中,fullName 是一个计算属性,它依赖于 firstName 和 lastName。每当 firstName 或 lastName 改变时,fullName 都会自动更新。

可写的计算属性

Vue 3 还支持可写的计算属性,这意味着你可以在计算属性中设置一个 setter 函数。这样,当计算属性的值被设置时,setter 函数会被调用。

<script setup>
import { ref, computed } from 'vue';const firstName = ref('John');
const lastName = ref('Doe');const fullName = computed({get: () => `${firstName.value} ${lastName.value}`,set: (newValue) => {[firstName.value, lastName.value] = newValue.split(' ');}
});
</script>

在这个例子中,当你尝试修改 fullName 时(例如,在模板中绑定到一个输入并修改它),setter 函数会被调用,从而更新 firstName 和 lastName

使用 Composition API 的优势

在 Vue 3 中,推荐使用 Composition API 来组织和重用逻辑,其中 setup() 函数和 <script setup> 是主要方式。这使得代码更加模块化和易于理解。计算属性在这种模式下依然强大且易于使用。

通过上述示例,你应该能够理解如何在 Vue 3 中创建和使用计算属性,无论是只读的还是可写的。这些功能对于构建响应式和高效的应用程序至关重要。

http://www.xdnf.cn/news/1246177.html

相关文章:

  • 前端实现Excel文件的在线预览效果
  • 10-红黑树
  • LINUX 85 SHElL if else 前瞻 实例
  • Goby 漏洞安全通告| NestJS DevTools /inspector/graph/interact 命令执行漏洞(CVE-2025-54782)
  • 国内办公安全平台新标杆:iOA一体化办公安全解决方案
  • 机械学习--决策树(实战案例)
  • Linux和mysql练习题2
  • Electron-updater + Electron-builder + IIS + NSIS + Blockmap 完整增量更新方案
  • HTML 媒体元素概述
  • LeetCode 71~90题解
  • MongoDB 从3.4.0升级到4.0.0完整指南实战-优雅草蜻蜓I即时通讯水银版成功升级-卓伊凡|bigniu
  • Redis内存耗尽时的应对策略
  • # 【Java + EasyExcel 实战】动态列 + 公式备注 Excel 模板导出全流程(附完整代码)
  • 分布式文件系统06-分布式中间件弹性扩容与rebalance冲平衡
  • PromptPilot搭配Doubao-seed-1.6:定制你需要的AI提示prompt
  • 行为模式-模板方法模式
  • 脚手架开发-准备配置-配置文件的准备项目的一些中间件
  • 超轻量级通用人脸检测模型解析:1MB以下的AI如何实现实时检测
  • VUE-第二季-02
  • 数据结构(14)链式结构二叉树
  • Java技术栈/面试题合集(4)-Spring篇
  • ENSP防火墙安全策略简单案例
  • vue3通过按钮实现横向滚动或鼠标滚动横坐标滚动
  • MousePlus鼠标右键增强工具v5.5.25,支持鼠标轮盘功能
  • Linux驱动25 --- RkMedia音频API使用增加 USB 音视频设备
  • Windows 远程管理 (WinRM)问题详解包括c#与python例子
  • C++ 变量初始化方式总结 | 拷贝初始化 | 列表初始化 | 值初始化
  • YooAsset源码阅读-Downloader篇
  • 本地使用uv管理的python项目怎么部署到服务器?
  • 攻击实验(ARP欺骗、MAC攻击、报文洪水攻击、DNS欺骗)