鸿蒙装饰器功能分类表

鸿蒙装饰器功能分类完整表

类别 装饰器 核心功能 修饰目标 数据流向 使用场景 示例代码
组件定义 @Component 声明自定义组件 struct结构体 - 定义UI组件 @Component struct MyComponent {}
@Entry 标记应用入口组件 struct结构体 - 应用主页面 @Entry @Component struct MainPage {}
@Preview 启用组件预览功能 struct结构体 - 开发阶段预览 @Preview @Component struct PreviewComp {}
状态管理 @State 管理组件私有状态 类属性 组件内部 计数器、开关状态 @State count: number = 0
@Prop 接收父组件单向数据 类属性 父→子 展示父组件数据 @Prop message: string
@Link 实现父子组件双向绑定 类属性 父↔子 表单控件、协同编辑 @Link value: boolean
@Provide 提供跨层级共享数据 类属性 祖先→后代 主题、用户信息共享 @Provide theme: string = "light"
@Consume 消费跨层级共享数据 类属性 祖先→后代 获取祖先组件数据 @Consume theme: string
@Watch 监听状态变化触发回调 类属性 - 状态变化监听 @State @Watch("onChange") data: string
@Observed 标记可观察类 类定义 - 复杂对象状态管理 @Observed class User {}
@ObjectLink 观察嵌套对象变化 类属性 - 对象属性变化监听 @ObjectLink user: User
@StorageLink 持久化存储双向绑定 类属性 应用存储↔UI 持久化数据同步 @StorageLink('key') data: string
@StorageProp 持久化存储单向同步 类属性 应用存储→UI 只读持久化数据 @StorageProp('key') data: string
UI构建 @Builder 声明可复用UI描述方法 类方法 - UI片段复用 @Builder customButton() { Button() }
@BuilderParam 接收外部UI构建函数 类属性 - 动态UI注入 @BuilderParam content: () => void
样式相关 @Styles 定义组件内复用样式 类方法 - 组件内样式复用 @Styles customStyle() { .width(100) }
@Extend 扩展内置组件样式 全局函数 - 全局样式复用 @Extend(Text) function boldText() {}
@AnimatableExtend 扩展可动画属性 全局函数 - 自定义动画属性 @AnimatableExtend(Text) function animWidth() {}
生命周期 @AboutToAppear 组件创建前回调 类方法 - 初始化操作 @AboutToAppear onCreated() {}
@AboutToDisappear 组件销毁前回调 类方法 - 资源清理 @AboutToDisappear onDestroy() {}
其他 @Require 强制必填参数 类属性 - 参数校验 @Require @Prop requiredValue: string

详细说明

组件定义装饰器

作用:定义和声明组件的基本结构和行为

装饰器 必选/可选 说明
@Component 必选 每个自定义组件必须使用,包含build()方法
@Entry 必选(应用级) 每个应用至少有一个入口组件
@Preview 可选 仅开发环境有效,生产环境自动忽略

状态管理装饰器对比

特性 @State @Prop @Link @Provide/@Consume
作用域 组件内部 父子组件 父子组件 跨层级组件
数据流向 内部维护 单向传递 双向绑定 单向提供
初始化 组件内部 父组件传递 父组件传递 祖先组件提供
更新触发 自身修改 父组件更新 双方修改 提供方更新
典型场景 私有状态 数据展示 表单控件 全局配置

UI构建装饰器使用场景

装饰器 使用模式 优势
@Builder 组件内复用 代码复用,逻辑封装
@BuilderParam 组件间组合 动态灵活,高度可定制

生命周期装饰器执行时机

装饰器 执行时机 注意事项
@AboutToAppear 组件创建前 避免耗时操作
@AboutToDisappear 组件销毁前 及时释放资源

使用示例合集

基础组件定义

1.1 基础组件结构

文章作者: 知行合一
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 知行合一
喜欢就支持一下吧