程序员的知识教程库

网站首页 > 教程分享 正文

鸿蒙开发(五十四):尾随闭包初始化@BuilderParam

henian88 2024-09-02 16:25:26 教程分享 2 ℃ 0 评论

尾随闭包初始化 @BuilderParam 非常的简单。

例如,有个子组件 ItemCard,它里面有一个插槽:

@Component
struct ItemCard {
  /**
   * 插槽
   */
  @BuilderParam Content: () => void

  build() {
    // 使用插槽
    this.Content()
  }
}

然后,父组件 Index 使用子组件 ItemCard,并初始化插槽。

@Entry
@Component
struct Index {
  @Builder Content() {
    Text("Content")
  }

  build() {
    Column() {
      ItemCard({ Content: this.Content })
    }
    .width('100%')
  }
}

正常情况下,我们会写一个自定义构建函数去初始化插槽。

尾随闭包初始化 @BuilderParam 是什么意思呢?

就是说,你不用再去自定义构建函数了,你直接在子组件的后面跟一对花括号 {}。这花括号就是在初始化插槽。

直接在花括号里描述 UI 即可。

build() {
  Column() {
    ItemCard() {
      Text("尾随闭包 @BuilderParam")
    }
  }
  .width('100%')
}

完整代码:

@Entry
@Component
struct Index {
  build() {
    Column() {
      ItemCard() {
        Text("尾随闭包 @BuilderParam")
      }
    }
    .width('100%')
  }
}

@Component
struct ItemCard {
  /**
   * 插槽
   */
  @BuilderParam Content: () => void

  build() {
    // 使用插槽
    this.Content()
  }
}

运行结果:

从运行结果来看,插槽完美运行。

这种初始化 @BuilderParam 的方式比自定义构建函数要方便,要快。

但代码的可读性比自定义构建函数要差。

所以,不推荐大家这样去初始化 @BuilderParam。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表