写点什么

HarmonyOS 5.0 应用开发——@build 构建函数的使用

作者:高心星
  • 2024-10-31
    江苏
  • 本文字数:1024 字

    阅读完需:约 3 分钟

HarmonyOS 5.0应用开发——@build构建函数的使用

【高心星出品】

@builder 构建函数

ArkUI 还提供了一种更轻量的 UI 元素复用机制 @Builder,@Builder 所装饰的函数遵循 build()函数语法规则,开发者可以将重复使用的 UI 元素抽象成一个方法,在 build 方法里调用。

组件内构建函数

@Entry@Componentstruct Test1 {  @State message: string = 'Hello World'  // 构建组件内ui  @Builder gentext(txt){    Text(txt)      .border({width:1,radius:5,color:Color.Red})      .fontSize(22)      .padding(5)      .width('100%')  }  build() {    Row() {      Column() {        // 使用组件内ui        this.gentext(this.message)      }      .width('100%')    }    .height('100%')  }}
复制代码

全局构建函数

/** *作者:gxx *日期:2024-03-13 18:41:57 *介绍: *全局builder构建 **/
@Builder export function gentext(txt){ Text(txt) .border({width:1,radius:5,color:Color.Blue}) .fontSize(22) .padding(5) .width('100%')}
复制代码


import { gentext } from '../components/builders'@Entry@Componentstruct Test1 {  @State message: string = 'Hello World'  // 构建组件内ui  @Builder gentext(txt){    Text(txt)      .border({width:1,radius:5,color:Color.Red})      .fontSize(22)      .padding(5)      .width('100%')  }  build() {    Row() {      Column() {        // 使用组件内ui        this.gentext(this.message)        // 使用全局builder        gentext(this.message)      }      .width('100%')    }    .height('100%')  }}
复制代码

构建函数传参

按值传递参数

上面的案例就是使用了按值传递,函数内只是获取了值。如果数据发生变化,组件不会刷新。

按引用传递参数

按引用传递参数时,传递的参数可为状态变量,且状态变量的改变会引起 @Builder 方法内的 UI 刷新。ArkUI 提供 $$作为按引用传递参数的范式。


interface param{    txt:string}// 按引用传递@Builder export function gentext1($$:param){  Text($$.txt)    .border({width:1,radius:5,color:Color.Blue})    .fontSize(22)    .padding(5)    .width('100%')}
复制代码


// 按照引用传递        gentext1({txt:this.message})        Button('修改')          .width('60%')          .onClick(()=>{            // 修改当前值会引起builder构建界面改变            this.message='hello arkui'          })
复制代码


用户头像

高心星

关注

天将降大任于斯人也,必先苦其心志。 2024-10-17 加入

华为开发者专家(HDE)。 10年教学经验,兼任多家科技公司技术顾问。先后从事JavaEE项目开发、Python爬虫、HarmonyOS移动应用开发等课程的教学工作。参与开发《鸿蒙应用开发基础》和《鸿蒙项目实战》等课程。

评论

发布
暂无评论
HarmonyOS 5.0应用开发——@build构建函数的使用_HarmonyOS_高心星_InfoQ写作社区