@Builder构建函数-传递参数(按值传递/引用传递)

185 阅读1分钟

场景:构建不同的UI组件,不同板块“查看更多”的文案不一样,更加灵活的复用UI组件

定义语法:@Builder MyBuilderFunction(title:string){}

使用方法:this.MyBuilderFunction('Title')

评价(200+) 好评度94% @Builder好货测评.jpg 推荐 查看全部
好货测评 6条测评

此时就用到了@Builder构建函数的传递参数语法
2种传参类型:
1:按值传参 不会驱动UI更新
2:引用传递 相当于传递对象,对象地址不变,引用对象依旧存在

Example:按值传递(通过值的传递,不会引起UI的变化)

@Builder按值传递.jpg



@Entry
@Component
struct Index {
  @Builder
  MoreBuilder(title:string){
    Row(){
      Text(title)  //引用title
        .fontColor('14')
        .fontColor('#999')
      Image($r('app.media.ic_public_arrow_right'))
        .width('16')
        .aspectRatio(1)  //设置宽高比
        .fillColor('#999')
    }
  }

  build() {
   this.MoreBuilder('好评率94%')
  }


引用传递

@Entry
@Component
struct Index {
  @Builder
  MoreBuilder(params:{title:string}){
    Row(){
      Text(params.title)  //引用title
        .fontColor('14')
        .fontColor('#999')
      Image($r('app.media.ic_public_arrow_right'))
        .width('16')
        .aspectRatio(1)  //设置宽高比
        .fillColor('#999')
    }
  }
  build() {
this.MoreBuilder({ title: '查看更多' })
}