当前位置: 首页> 游戏> 评测 > 汝阳网站建设哪家好_上海有做网站的公司么_电商网站推广方案_外贸接单平台哪个最好

汝阳网站建设哪家好_上海有做网站的公司么_电商网站推广方案_外贸接单平台哪个最好

时间:2025/7/11 8:50:00来源:https://blog.csdn.net/chunqiuwei/article/details/144291313 浏览次数:0次
汝阳网站建设哪家好_上海有做网站的公司么_电商网站推广方案_外贸接单平台哪个最好

WrapBuilder

  • 全局@Builder是什么
  • 什么时候使用wrapBuilder
  • @Builder的限制
  • 参考资料

全局@Builder是什么

  • 局部@Builder的定义方法如下:
//定义局部@Builder
 MyBuilderFunction() {}
//使用方法
this.MyBuilderFunction()
  • 全局@Builder定义语法如下:
//全局@Builder
 function MyGlobalBuilderFunction() { ... }
//使用方法
MyGlobalBuilderFunction()

什么时候使用wrapBuilder

什么时候使用wapBuilder,HarmonyOS官方文档给的解释是:当开发者在一个struct内使用了多个全局@Builder函数,来实现UI的不同效果时,多个全局@Builder函数会使代码维护起来非常困难,并且页面不整洁。此时,开发者可以使用wrapBuilder来封装全局@Builder

另外wrapBuilder在组件全局复用上有很重要的作用,详见HarmonyOS(63) ArkUI 自定义占位组件NodeContainer

@Builder的限制

当@Builder方法赋值给变量或者数组后,赋值的变量或者数组在UI方法中无法使用,此时wrapBuilder就可以解决这方面的不足。使用wrapBuilder作为全局@Builder封装函数。wrapBuilder的参数返回WrapBuilder对象,实现全局@Builder可以进行赋值和传递。
无效的代码:

//定义一个全局的@Builder
 function builderElement() {}
//builderArr是一个@Builder方法组成的数组
let builderArr: Function[] = [builderElement];
 function testBuilder() {//此段代码无效。ForEach(builderArr, (item: Function) => {item();})
}

改正后的方法:

//定义一个全局的@Builder
 function builderElement() {}
//builderArr是一个@Builder方法组成的数组
let builderArr: WrappedBuilder<[]>[] = [wrapBuilder(builderElement)]
 function testBuilder() {//此段代码无效。ForEach(builderArr, (item: WrappedBuilder<[]>) => {item.builder()}
}

上面builderElement是一个没有参数的@Builder,wrapBuilder也可以传参数,比如下面的function。

//带参数的Builder
 function MyBuilder(value: string, size: number) {Text(value).fontSize(size)
}
//WrappedBuilder传递参数
let builderVar: WrappedBuilder<[string, number]> = wrapBuilder(MyBuilder)

参考资料

wrapBuilder:封装全局@Builder
HarmonyOS(63) ArkUI 自定义占位组件NodeContainer
@Builder
全局自定义构建函数

关键字:汝阳网站建设哪家好_上海有做网站的公司么_电商网站推广方案_外贸接单平台哪个最好

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: