• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 组件扩展概述
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @zhangboren-->
5<!--Designer: @zhangboren-->
6<!--Tester: @TerryTsao-->
7<!--Adviser: @zhang_yixin13-->
8
9ArkUI通过@Builder装饰器为开发者提供代码精简解决方案,该装饰器不仅能通过模块化封装简化UI开发流程,还衍生出@BuilderParam装饰器、@LocalBuilder装饰器和wrapBuilder,形成完整的可复用的UI结构体系。
10
11> **说明:**
12>
13> @Builder装饰器是@BuilderParam装饰器、@LocalBuilder装饰器和wrapBuilder的基石。
14
15## @Builder装饰器
16
17[@Builder装饰器](./arkts-builder.md)装饰器专为构建模块化、可复用的UI结构而设计,其内部禁止定义状态变量和调用组件生命周期方法,仅支持通过参数与调用方进行数据交互。
18
19## @LocalBuilder装饰器
20
21在使用@Builder实现组件间数据传递时,开发者需注意组件层级关系。组件树中的父子关系可能与状态管理的父子关系产生不一致。为此,框架提供了[@LocalBuilder装饰器](./arkts-localBuilder.md)装饰器来解决这一特定问题。
22
23## @BuilderParam装饰器
24
25当多个场景共用同一个@Builder函数时,若需要为特定场景扩展功能(类似slot占位符机制),可通过[@BuilderParam装饰器](./arkts-builderparam.md)装饰器实现,该装饰器专门用于接收并封装@Builder函数。
26
27## wrapBuilder
28
29当页面中存在多个具有不同UI结构的全局@Builder函数时,开发者会面临较高的维护成本。为此,框架提供了[wrapBuilder](./arkts-wrapBuilder.md)机制来简化这一场景下的代码维护工作。