@Builder VS @LocalBuilder 怎么选择使用

是汉堡黄
发布于 2025-11-2 22:38
浏览
0收藏

🎯 @Builder VS @LocalBuilder 怎么选择使用

⭐⭐⭐

ℹ️ 提示

builder这个老演员就不多赘述,让我们看看localBuilder具体是干啥的

❗❗❗区别

@LocalBuilder只能局部使用

@LocalBuilder无论是否使用.bind(this)都不会改变父子关系

跨组件传递局部@Builder会使用.bind(this)更改函数上下文,会导致父子关系不一致

@ComponentV2
struct Son {
  @Local label: string = 'son'
  @BuilderParam customBuilderParam: () => void

  build() {
    Column() {
      this.customBuilderParam()
    }
  }
}

@Entry
@ComponentV2
struct LocalBuilderCase {
  @Local label: string = 'Father'

  @Builder
  componentBuilder() {
    Text(`${this.label}`)
    // 这里会显示Son
  }

  @LocalBuilder
  componentLocalBuilder() {
    Text(`${this.label}`)
    // 这里会显示Father
  }

  build() {
    Column() {
      Son({ customBuilderParam: this.componentBuilder })
      Son({ customBuilderParam: this.componentLocalBuilder })
    }
    .width('100%')
    .height('100%')
  }
}

📝 除了以上区别,其他的使用方式大致都是一样的,我认为在没有特殊场景的情况下直接使用@LocalBuilder即可

🌸🌼🌺

分类
已于2025-11-2 22:43:16修改
收藏
回复
举报
回复
    相关推荐