装饰器
可装饰类、结构体、属性。多个装饰器可叠加在目标元素上,同一行或多行,推荐定义多行
@Component
struct MyComponent {
@State count: number = 0
}
多个装饰器定义在多行上
@Entry
@Component
struct MyComponent {
}
支持的装饰器列表
装饰器 | 装饰内容 | 描述 |
---|---|---|
@Component | struct | 被装饰后的结构体具有组件化的能力,通过build()来更新UI |
@Entry | struct | 装饰后的组件作为页面的入口,页面加载时将被渲染显示 |
@Preview | struct | 装饰的自定义组件可在DevEco Studio的预览器上进行预览,加载页面时,将创建并呈现@Preview装饰的自定义组件 |
@Builder | 方法 | 装饰的方法用通过声明式UI描述,可在一个自定义组件内快速生成多个布局内容。 |
@Extend | 方法 | 将新的属性函数添加到内置组件上,可快速定义并复用组件的自定义样式。 |
@CustomDialog | struct | 用于装饰自定义弹窗。 |
@State | 基本数据类型,类,数组 | 状态数据被修改时会触发组件的build()进行UI界面更新。 |
@Prop | 基本数据类型 | 修改后的状态数据用于在父组件和子组件之间建立单向数据依赖关系。修改父组件关联数据时,更新当前组件的UI。 |
@Link | 基本数据类型,类,数组 | 父子组件之间的双向数据绑定,父组件的内部状态数据作为数据源,任何一方所做的修改都会反映给另一方。 |
@Observed | 类 | 表示该类中的数据变更被UI页面管理。 |
@ObjectLink | 被@Observed所装饰类的对象 | 装饰的状态数据被修改时,在父组件或者其他兄弟组件内与它关联的状态数据所在的组件都会更新UI。 |
@Provide | 基本数据类型,类,数组 | 作为数据的提供方,可以更新其子孙节点的数据,并触发页面渲染。 |
@Consume | 基本数据类型,类,数组 | 装饰的变量在感知到@Provide装饰的变量更新后,会触发当前自定义组件的重新渲染。 |
@Watch | 被@State, @Prop, @Link, @ObjectLink, @Provide, @Consume, @StorageProp, @StorageLink中任意一个装饰的变量 | 用于监听状态变量的变化,应用可以注册回调方法。 |