HarmonyOS应用开发-ArkTS语言的装饰器之@BuilderParam

本文介绍了HarmonyOS中的BuilderParam装饰器,它用于为自定义组件添加特定功能,如点击跳转,并详细讲解了如何在自定义构建函数中使用和初始化@BuilderParam。同时,文章还涉及了全局自定义构建函数、尾随闭包等概念,并强调了鸿蒙开发的学习资源对于开发者的重要性。

前言

前面我们玩到了@ Builder 装饰器我们知道他是一个自定义构建函数,可以将重复使用的UI元素抽象成一个方法,在build方法里调用,那么本期我们要玩玩的是BuilderParam 顾名思义: builder 的参数,用作是啥? 这玩意有点麻烦说实话不好用......

用于自定义构建函数的时候在里面添加了一个自定义组件如果你需要实现点击跳转功能按早以前我们都是直接修改这个函数里面的组件那么导致所有引用这个函数的组件都会有点击跳转功能,为解决此问题,ArkUI引入了@BuilderParam装饰器,@BuilderParam用来装饰指向@Builder方法的变量,我们就可以在初始化自定义组件时对此属性进行赋值,为自定义组件增加特定的功能。

该装饰器用于声明任意UI描述的一个元素,类似slot占位符。

使用

⚠️: @BuilderParam装饰的方法只能被自定义构建函数@Builder装饰来初始化

使用所属自定义组件的自定义构建函数或者全局的自定义构建函数,在本地初始化@BuilderParam,啥意思?操作看看

语法:

所属的自定义组件里面的函数

官方给到的一个语法

这里 void 后面跟着类似赋值操作 官方没有给出合理的解释, 我们继续跟着案例来

img

@Builder function GlobalBuilder0() {}
 
 @Component
 struct Child {
   @Builder doNothingBuilder() {};
   // 这里 void 后面跟着类似赋值操作 官方没有给出合理的解释
   @BuilderParam aBuilder0: () => void = this.doNothingBuilder;
   @BuilderParam aBuilder1: () => void = GlobalBuilder0;
   build(){}
 }

用父组件自定义构建函数初始化子组件@BuilderParam装饰的方法

使用子组件的 BuildeParam 传递参数的时候不能传递字符串、数值等类型只能传递 Builder 修饰的函数

img

// 乖儿
 @Component
 struct Son {
   @BuilderParam bp0: () => void;
 
   build() {
     Column() {
       // 直接调用使用
       this.bp0()
    }
  }
 }
 
 // 父亲组件
 @Entry
 @Component
 struct Father {
   @Builder componentBuilder() {
     Text(`我这里是父类里面的组件`)
  }
 
   build() {
     Column() {
       Son({bp0: this.componentBuilder})
    }
  }
 }

效果展示

img

this指向

这个时候虽然是可以用到父

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值