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

HarmonyOS-ArkUI V2装饰器: @Computed装饰器:计算属性

@Computed是用来装饰一个自己写的getter方法的装饰器,它可以让您像用平常的状态变量那样去用这个getter方法。那么getter方法里怎么获取的值,必然涉及到您写的逻辑。这个逻辑可以是很复杂的一种计算方式,经过一系列复杂方式计算完您吐出相应的结果即可。

为了便于理解,我们先从既有的所学的这些装饰器,来看看,当我们有个组件的界面依赖于比较复杂的状态变量计算时,会怎么写,您稍微看一下,估计就能察觉出来那些隐性的限制。

示例代码:

Button("XXXXX").backgroundColor(isRight? Color.Green : Color.Brown)
}

我们看出,其实backgroundColor等一些函数中其实是接收一个计算结果的,因为这是表达式哈,所以从语言上也是接受这种写法的。

但是如果有一个场景使得我们这个值非常复杂呢?那么您会怎么计算,用表达式也没有办法很好的来阐述这个问题。此时我们就要用@Computed装饰器来解决这种问题了。平常使用场景中其实缺少不了这种情况的。出现的挺频繁的。

我们先看一下它是怎么用的,用代码浅浅的体会下,它是怎么来解决我们上述提到的尴尬逻辑的。

@Entry
@ComponentV2
struct ComputedTest {@Local firstName: string = 'Li'@Local lastName: string = 'Hua'age: number = 20@Computedget getFullName(): string{console.log("-------------computed---------------")return this.lastName + ' ' + this.firstName}build() {Column(){Column(){Text(this.lastName + ' ' + this.firstName)Divider()Text(this.getFullName) //这块的入参就可以是一个Computed修饰的get函数。就像用状态变量一样用这个函数Divider()Button('changed lastName').onClick(() => {this.lastName += 'a'; //状态变量的变化,可以重新触发Computed的计算})}}}
}

概述

@Computed装饰器是用来装饰getter方法的。getter方法中涉及到相关状态变量的计算。当相关的状态变量发生变化时会自动触发Computed修饰的函数重新计算。对于比较复杂的计算,Computed会有性能收益。

语法:

// 1 必须是get方法。 2 可以返回
http://www.dtcms.com/a/134065.html

相关文章:

  • 【刷题2025】知识点梳理
  • Notepad++中将文档格式从Windows(CR LF)转换为Unix(LF)
  • ollama修改配置使用多GPU,使用EvalScope进行模型压力测试,查看使用负载均衡前后的性能区别
  • vue复习46~90
  • designware IP如何被FPGA综合
  • 【控制学】控制学分类
  • 儿童后期至青少年早期脑网络隔离增强的发育机制研究
  • 中国反制关税影响分析、可能性分析
  • 基于Python的PC控制Robot 小程序开发历程
  • 虚拟机ubuntu网络如何使用windows物理机的代理
  • 【差分隐私相关概念】瑞丽差分隐私(RDP)引理1
  • 【差分隐私相关概念】瑞丽差分隐私(RDP)-命题1
  • Web前端开发——图像与多媒体文件(上)
  • 计算机视觉——基于 Yolov8 目标检测与 OpenCV 光流实现目标追踪
  • 在ros2上使用opencv显示一张图片
  • 智能指针(内存泄漏)
  • 高德地图自有数据添加图层
  • Ubuntu安装yum遇到Package ‘yum‘ has no installation candidate
  • CSRF(跨站请求伪造)漏洞概述
  • Windows服务器组建与综合服务部署技术方案
  • C# 使用.NET内置的 IObservable<T> 和 IObserver<T>-观察者模式
  • Python对ppt进行文本替换、插入图片、生成表格
  • Spark中Maven的用法
  • 如何查看自己抖音的IP属地?详细教程及如何修改
  • Chromium 134 编译指南 macOS篇:安装 Xcode(二)
  • scikit-learn初探
  • 巧记英语四级单词 Unit4-中【晓艳老师版】
  • RagFlow本地部署教程 :多模态检索+动态生成,用AI重构企业知识生产力
  • 软件架构设计:MVC、MVP、MVVM、RIA 四大风格优劣剖析
  • reactive 解构赋值给 ref