自学鸿蒙HarmonyOS的ArkTS语言<十一>wrapBuilder:封装全局@Builder

@Builder function globalBuilder1(value: string, size: number) {
  Text(value)
    .fontSize(size)
}

@Builder function globalBuilder2(value: string, size: number) {
  Text(value)
    .fontSize(size)
    .fontColor(Color.Blue)
}

// wrapBuilder(全局builder方法) - 返回一个WrappedBuilder对象
let globalWrapBuilder1: WrappedBuilder<[string, number]> = wrapBuilder(globalBuilder1)

// 放到数组中
let globalWrapBuilder2: WrappedBuilder<[string, number]>[] = [wrapBuilder(globalBuilder1), wrapBuilder(globalBuilder2)]


@Entry
@Component
struct Index8 {


  build() {
    Column() {
      globalBuilder1('我是通过全局builder传入的', 20)

      globalWrapBuilder1.builder('我是通过wrapBuilder传入的', 25)

      Column() {
        ForEach(globalWrapBuilder2, (item: WrappedBuilder<[string, number]>) => {
          item.builder('我是通过遍历WrappedBuilder传入的', 20)
        })
      }
      .margin({top: 50})
    }
  }
}



在这里插入图片描述

总结:
1、参数只能是全局builder方法
2、返回一个WrappedBuilder对象,其builder属性方法只能在struct内使用
在这里插入图片描述
3、可以用循环来进行不同@Builder函数的渲染

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 16:56:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 16:56:03       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 16:56:03       58 阅读
  4. Python语言-面向对象

    2024-07-16 16:56:03       69 阅读

热门阅读

  1. 开源软件的浪潮:趋势、参与经验与共赢未来

    2024-07-16 16:56:03       21 阅读
  2. linux查看进程使用的端口号信息

    2024-07-16 16:56:03       19 阅读
  3. 自动驾驶SLAM

    2024-07-16 16:56:03       17 阅读
  4. c++无大害小病毒6

    2024-07-16 16:56:03       18 阅读
  5. 项目名称:智能课程表生成器

    2024-07-16 16:56:03       20 阅读
  6. HTML的文档类型与字符集<!DOCTYPE html>

    2024-07-16 16:56:03       22 阅读
  7. C++——类与对象(中)

    2024-07-16 16:56:03       23 阅读
  8. num = num++; 这段代码为什么是0?

    2024-07-16 16:56:03       20 阅读
  9. YOLOv5 更换Neck之 BiFPN

    2024-07-16 16:56:03       20 阅读