鸿蒙_组件内和组件外使用@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()外部,和普通状态变量的编写位置是相同的,如果写错了位置会报错。

相关推荐
云端漫步19878 小时前
HarmonyOS 互动卡片实战:快递卡片与睡眠卡片完整开发流程
华为·harmonyos
智塑未来9 小时前
鸿蒙6.1隐私安心加倍:加密分享、星盾防诈、应用锁三重保护,守护到位
华为·harmonyos
byte轻骑兵10 小时前
2026手机远程办公:向日葵、TeamViewer、ToDesk鸿蒙适配+传文件+AI审计功能对比
智能手机·harmonyos·todesk·teamviewer·手机远程办公
贾伟康10 小时前
【知律|06】HarmonyOS ArkTS 法律分类实战:让民法、劳动、消费等入口可维护
harmonyos·arkts·arkui·分类设计·多设备
M-Robots echo1 天前
M-CLAW,面向具身智能的机器人任务编排开发框架
机器人·ros·鸿蒙·开源社区·m-robots
M-Robots echo1 天前
王成录:机器人产业下一个十年,拼的是 “系统级智能化” 而非单点算法堆叠
机器人·ros·鸿蒙·开源社区·m-robots·王成录
梦想不只是梦与想1 天前
鸿蒙 测试工具:DevEco Testing(一)
测试工具·harmonyos·testing
大锅盖11 天前
Web 工单要调用相机,第一步不是打开取景框,而是建立能力门禁
前端·数码相机·harmonyos
M-Robots echo1 天前
M-Robots ROS 兼容适配方案,实现存量机器人项目低成本迁移
机器人·ros·鸿蒙·开源社区·m-robots
贾伟康1 天前
【华夏二十四节气|07】HarmonyOS 6.0.2(22) ArkTS 节气搜索实战:多字段匹配与四态闭环
移动开发·harmonyos·arkts·arkui·本地搜索