背景
這是一個基礎概念,其實沒有什么原因,練習過程中,自然可以感受到其用法,后期加上真實項目的演練,會形成習慣
功能核心理念
“在自定義組件中添加一個點擊跳轉操作。若直接在組件內嵌入事件方法,將會導致所有引入該自定義組件的地方均增加了該功能。為解決此問題,ArkUI引入了@BuilderParam裝飾器”
這樣的場景在任何平臺任何公司都會遇到,是否采用在公共組件中定義某個功能還是在外部定義某個功能,都是取決于實際業務場景發生的概率。
@BuilderParam 要告知是:HarmonyOS有應對這樣的機制
|
核心代碼
@Entry
@Component
struct BuilderParam2Index {
label: string = 'Parent'
@Builder GlobalBuilder1($$: { label: string }) {
Text(`${this.label}`).fontColor(Color.White)
Text($$.label)
.fontColor(Color.White)
.width('100%')
.height(50)
.backgroundColor(Color.Green)
}
build() {
Column({ space: 30 }) {
//一. 通過參數初始化組件
BuilderParamChild2({ aBuilder1: this.GlobalBuilder1 })
BuilderParamChild2({ label: 'Child', aBuilder1: this.GlobalBuilder1 })
//二. 通過尾隨閉包初始化組件, 如果組件中包含兩個及以上@BuilderParam函數,則無法使用此種初始化方式
BuilderParamChild2(){}
BuilderParamChild2({ label: 'Child' }) {}
BuilderParamChild2({ label: 'Child' }) {
this.GlobalBuilder1({ label: 'global Builder label2' })
}
BuilderParamChild2({ label: 'Child' }) {
Text('自定義初始化文字').fontColor(Color.Orange)
}
}
.width('100%')
.height('100%')
.padding({ top: px2vp(111) })
.alignItems(HorizontalAlign.Center)
.justifyContent(FlexAlign.Center)
}
}
@Component
struct BuilderParamChild2 {
label: string = "Child"
// 有參數類型,指向的GlobalBuilder1也是有參數類型的方法
@BuilderParam aBuilder1: ($$: { label: string }) = > void;
build() {
Column() {
Text('BuilderParamChild').fontColor(Color.Red)
this.aBuilder1({ label: 'global Builder label' })
}.width('100%').backgroundColor(Color.Green)
}
}
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
鴻蒙OS
+關注
關注
0文章
190瀏覽量
4493
發布評論請先 登錄
相關推薦
鴻蒙OS開發實例:【頁面傳值跳轉】
本篇主要介紹如何在HarmonyOS中,在頁面跳轉之間如何傳值
HarmonyOS 的頁面指的是帶有@Entry裝飾器的文件,其不能獨自存在,必須依賴UIAbility這樣的組件容器
如下是官方關于State模型開發模式
鴻蒙OS應用程序開發
這份學習文檔主要是帶領大家在鴻蒙OS上學習開發一個應用程序,主要知識點如下:1、U-Boot引導文件燒寫方式;2、內核鏡像燒寫方式;3、鏡像運行。
發表于 09-11 14:39
HarmonyOS/OpenHarmony應用開發-ArkTS語言@BuilderParam引用@Builder函數
引入了@BuilderParam裝飾器,@BuilderParam用來裝飾指向@Builder方法的變量,
發表于 05-30 11:01
OpenHarmony裝飾指定自定義組件:@BuilderParam裝飾器
引入了@BuilderParam裝飾器,@BuilderParam用來裝飾指向@Builder方法的變量,
發表于 09-27 16:02
鴻蒙OS系統詳解
華為的鴻蒙OS是一款“面向未來”的操作系統,是基于微內核的全場景分布式OS,可按需擴展,實現更廣泛的系統安全。目前主要用于智能物聯網,今年將擴展到智能手機上鴻蒙
鴻蒙OS 2.0手機開發者Beta版發布會在京舉辦
三個月前,鴻蒙OS 2.0正式在華為開發者大會2020亮相。12月16日,鴻蒙OS 2.0手機開發
華為開發者大會2021鴻蒙os在哪場
華為開發者大會2021將在10月22日-24日舉辦,地點為東莞松山湖,鴻蒙os 3.0或將與我們見面,那么華為開發者大會2021鴻蒙
鴻蒙OS開發教學:【編程之重器-裝飾器】
@StorageLink
9. @Provide
10. @Consume
11. @Observed
12. @Builder
13. @BuilderParam
14.
鴻蒙OS開發實例:【ArkTS類庫多線程@Concurrent裝飾器校驗并發函數】
在使用TaskPool時,執行的并發函數需要使用該裝飾器修飾,否則無法通過相關校驗。從API version 9開始,該裝飾器支持在ArkTS卡片中使用。
評論