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

鸿蒙 核心与非核心装饰器

HarmonyOS NEXT 版本中完整的 ArkTS 装饰器分类整理(含核心与非核心装饰器,已剔除废弃特性)


一、核心装饰器(Essential Decorators)

1. 组件基础
装饰器功能
@Entry应用入口组件,每个模块必须且仅有一个,承载视图层级根节点
@Component自定义组件声明,支持结构化UI开发(必须与struct配合使用)
@BuilderUI片段复用,定义可复用UI构建函数(非完整组件)
2. 状态管理
装饰器数据流向特性
@State组件内部维护私有状态驱动UI更新,支持本地初始化
@Prop父 → 子单向同步接收父组件数据,本地修改不影响源头
@Link父 ↔ 子双向同步自动双向绑定父组件的@State变量
@ObjectLink复杂对象双向同步配合@Observed实现嵌套对象属性级响应式更新
@Observed对象可观察化标记类为可观察对象(必须与@ObjectLink@Prop配合使用)
3. 生命周期
装饰器触发时机
@OnPageShow页面显示(如返回栈恢复)
@OnPageHide页面隐藏(如跳转至其他页面)
@OnBackPress物理返回键/导航栏返回按钮事件监听(可拦截默认行为)

二、进阶装饰器(Advanced Decorators)

1. 性能优化
装饰器用途
@Reusable组件实例复用(类似Android RecyclerView回收池机制),减少重复渲染
@Track精细化属性追踪,深度监听复杂对象属性变化(优化渲染性能)
2. 状态共享
装饰器作用层级特性
@Provide / @Consume跨层级共享实现祖先与后代组件间的状态透传(无需逐层传递props)
@StorageLink全局持久化存储(AppStorage)双向绑定应用级共享状态
@StorageProp全局持久化存储(AppStorage)单向绑定应用级共享状态(仅读取)
@LocalStorageLink页面级临时存储双向绑定页面栈内状态
@LocalStorageProp页面级临时存储单向绑定页面栈内状态(仅读取)
3. 动画与样式
装饰器用途
@Animatable声明式动画支持,配合animateTo实现属性过渡动画
@Styles样式复用,定义组件通用样式集合(支持条件样式)
@Extend样式扩展,为现有组件添加自定义样式能力
4. 异步与监听
装饰器用途
@Watch状态变化监听,在指定变量变化时触发回调函数
@Concurrent并发函数标记,允许函数在TaskPool线程池中执行(需配合taskpoolAPI)

三、使用原则与建议

  1. 优先核心装饰器:90%的场景可通过@State@Prop@Link解决状态管理问题
  2. 谨慎使用深度监听@Track过度使用会导致内存开销增加
  3. 全局状态选择
    • 持久化数据用AppStorage系列装饰器
    • 页面级临时数据用LocalStorage系列装饰器
  4. 线程安全@Concurrent装饰的函数需确保无UI操作(遵守ArkTS线程模型)
  5. 生命周期对齐:页面级装饰器(如@OnPageShow)仅在@Entry组件生效

四、完整对比速查表

分类核心装饰器进阶装饰器
组件基础@Entry, @Component, @Builder-
状态管理@State, @Prop, @Link, @Observed@Provide/Consume, Storage/LocalStorage系列
性能优化-@Reusable, @Track
动画样式-@Animatable, @Styles, @Extend
异步监听-@Watch, @Concurrent

相关文章:

  • Node.js事件循环中的FIFO原则
  • [FA1C4] 博客链接
  • SQL语句,索引,视图,存储过程以及触发器
  • DeepSeek、B(不是百度)AT、科大讯飞靠什么坐上中国Ai牌桌?
  • 【C++】深入理解 unordered 容器、布隆过滤器与分布式一致性哈希
  • 激光打印机常见打印故障简单处理意见
  • 导出导入Excel文件(详解-基于EasyExcel)
  • Git基本操作命令
  • Java—— 双列集合 Map
  • 第一章:HTML基石·现实的骨架
  • 基于单应性矩阵变换的图像拼接融合
  • WebGIS 开发黑科技:解锁地理信息的新视界
  • vscode点击函数名/变量/文件名无法跳转
  • 【deekseek】P2P通信路由过程
  • 内核深入学习3——分析ARM32和ARM64体系架构下的Linux内存区域示意图与页表的建立流程
  • AUTOSAR图解==>AUTOSAR_TPS_ECUResourceTemplate
  • MySQL 主从复制与读写分离
  • CST软件对OPERACST软件联合仿真汽车无线充电站对人体的影响
  • 【网络编程】七、详解HTTP 搭建HTTP服务器
  • 快速排序、归并排序、计数排序
  • 王毅谈中拉命运共同体建设“五大工程”及落实举措
  • 习近平同巴西总统卢拉共同会见记者
  • 最高降九成!特朗普签署降药价行政令落地存疑,多家跨国药企股价收涨
  • 外媒:初步结果显示,菲律宾前总统杜特尔特当选达沃市市长
  • 文学花边|对话《借命而生》原著作者石一枫:我给剧打90分
  • 重庆三峡学院回应“中标价85万设备网购300元”:已终止采购