鸿蒙_组件内和组件外使用@Builder自定义构建函数的区别

通过对自定义构建函数的学习,我发现在组件内和组件外编写和使用方面有一些小差别,通过新建一个页面TestBuilderInsideAndOutside来测试一下:

复制代码
@Entry
@Component
struct TestBuilderInsideAndOutside {
  @State message: string = 'Test Builder Inside And Outside';

  //组件内自定义构建函数,不加function
  @Builder
  InsideBuilder(from: string) {
    Text(from + ' Text in Inside Builder').fontSize(22)
  }

  build() {
    Column() {
      Text(this.message)
        .fontSize(22)
        .fontWeight(FontWeight.Bold)
        .onClick(() => {
          this.message = 'Welcome';
        })
        .padding({ bottom: 30 })

      //使用组件内自定义构建函数需要加this
      this.InsideBuilder('组件内')

      //使用组件外自定义构建函数不需要加this
      OutsideBuilder('组件外')

    }
    .height('100%')
    .width('100%')
  }
}

//组件外自定义构建函数,需要加function
@Builder
function OutsideBuilder(from: string) {
  Text(from + ' Text in Outside Builder').fontSize(22)
}

通过测试我们发现,在组件外需要加function,使用时不需要this,组件内不需要加function,但使用时需要加this,而且在组件内编写自定义构建函数时,要写在struct内部,build()外部,和普通状态变量的编写位置是相同的,如果写错了位置会报错。

相关推荐
李李李勃谦2 小时前
Flutter 框架跨平台鸿蒙开发 - 志愿者活动应用
flutter·华为·harmonyos
小雨天気.2 小时前
Flutter 框架跨平台鸿蒙开发 - 实战棋谱记录应用
flutter·华为·harmonyos
浮芷.2 小时前
Flutter 框架跨平台鸿蒙开发 - 神奇的DIY教程应用
flutter·华为·harmonyos
李李李勃谦2 小时前
Flutter 框架跨平台鸿蒙开发 - 环保知识应用
flutter·华为·harmonyos
autumn20053 小时前
Flutter 框架跨平台鸿蒙开发 - 车辆管理应用
flutter·华为·harmonyos
AI_零食3 小时前
Flutter 框架跨平台鸿蒙开发 - 鸿蒙渐变效果生成器应用
学习·flutter·ui·华为·harmonyos
盐焗西兰花3 小时前
鸿蒙学习实战之路-Share Kit系列(17/17)-Share Kit常见问题与避坑指南
学习·华为·harmonyos
autumn20053 小时前
Flutter 框架跨平台鸿蒙开发 - 智能灯光控制应用
flutter·华为·harmonyos
独特的螺狮粉3 小时前
开源鸿蒙跨平台Flutter开发:基于 CustomPaint 的高刷心电图 (ECG) 渲染引擎设计-临床体征实时监测终端
flutter·开源·harmonyos