@LocalBuilder装饰器:维持组件关系

@LocalBuilder拥有和局部@Builder相同的功能,且比局部@Builder能够更好地确定组件的父子关系和状态管理的父子关系。开发指南见@LocalBuilder装饰器:维持组件关系

说明:

  • 本装饰器首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

@LocalBuilder

const LocalBuilder: MethodDecorator

模型约束: 此接口仅可在Stage模型下使用。

卡片能力: 从API version 12开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

示例:

class ReferenceType {
  paramString: string = '';
}

@Entry
@Component
struct Parent {
  @State variableValue: string = 'Hello World';

  // 使用@LocalBuilder装饰器定义构建函数,维持组件的父子关系和状态管理的父子关系
  // 通过引用类型参数传递,可以监听到状态变量的变化
  @LocalBuilder
  citeLocalBuilder(params: ReferenceType) {
    Row() {
      Text(`UseStateVarByReference: ${params.paramString}`)
    }
  }

  build() {
    Column() {
      // 调用@LocalBuilder定义的构建函数,传入包含状态变量的引用类型参数
      this.citeLocalBuilder({ paramString: this.variableValue })
      Button('Click me')
        .onClick(() => {
          // 点击后修改状态变量的值,UI会自动刷新
          this.variableValue = 'Hi World';
        })
    }
  }
}