背景
這是一個基礎(chǔ)概念,其實(shí)沒有什么原因,練習(xí)過程中,自然可以感受到其用法,后期加上真實(shí)項目的演練,會形成習(xí)慣
功能核心理念
“在自定義組件中添加一個點(diǎn)擊跳轉(zhuǎn)操作。若直接在組件內(nèi)嵌入事件方法,將會導(dǎo)致所有引入該自定義組件的地方均增加了該功能。為解決此問題,ArkUI引入了@BuilderParam裝飾器”
這樣的場景在任何平臺任何公司都會遇到,是否采用在公共組件中定義某個功能還是在外部定義某個功能,都是取決于實(shí)際業(yè)務(wù)場景發(fā)生的概率。
@BuilderParam 要告知是:HarmonyOS有應(yīng)對這樣的機(jī)制
|
核心代碼
@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 }) {
//一. 通過參數(shù)初始化組件
BuilderParamChild2({ aBuilder1: this.GlobalBuilder1 })
BuilderParamChild2({ label: 'Child', aBuilder1: this.GlobalBuilder1 })
//二. 通過尾隨閉包初始化組件, 如果組件中包含兩個及以上@BuilderParam函數(shù),則無法使用此種初始化方式
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"
// 有參數(shù)類型,指向的GlobalBuilder1也是有參數(shù)類型的方法
@BuilderParam aBuilder1: ($$: { label: string }) = > void;
build() {
Column() {
Text('BuilderParamChild').fontColor(Color.Red)
this.aBuilder1({ label: 'global Builder label' })
}.width('100%').backgroundColor(Color.Green)
}
}
審核編輯 黃宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
鴻蒙OS
+關(guān)注
關(guān)注
0文章
193瀏覽量
5496
發(fā)布評論請先 登錄
相關(guān)推薦
熱點(diǎn)推薦
鴻蒙OS開發(fā)實(shí)例:【頁面?zhèn)髦堤D(zhuǎn)】
本篇主要介紹如何在HarmonyOS中,在頁面跳轉(zhuǎn)之間如何傳值
HarmonyOS 的頁面指的是帶有@Entry裝飾器的文件,其不能獨(dú)自存在,必須依賴UIAbility這樣的組件容器
如下是官方關(guān)于State模型開發(fā)模式
鴻蒙OS應(yīng)用程序開發(fā)
這份學(xué)習(xí)文檔主要是帶領(lǐng)大家在鴻蒙OS上學(xué)習(xí)開發(fā)一個應(yīng)用程序,主要知識點(diǎn)如下:1、U-Boot引導(dǎo)文件燒寫方式;2、內(nèi)核鏡像燒寫方式;3、鏡像運(yùn)行。
發(fā)表于 09-11 14:39
HarmonyOS/OpenHarmony應(yīng)用開發(fā)-ArkTS語言@BuilderParam引用@Builder函數(shù)
引入了@BuilderParam裝飾器,@BuilderParam用來裝飾指向@Builder方法的變量,
發(fā)表于 05-30 11:01
OpenHarmony裝飾指定自定義組件:@BuilderParam裝飾器
引入了@BuilderParam裝飾器,@BuilderParam用來裝飾指向@Builder方法的變量,
發(fā)表于 09-27 16:02
鴻蒙 OS 應(yīng)用開發(fā)初體驗
的 IDE、鴻蒙生態(tài)的開發(fā)語言 ArkTS,通過模擬器運(yùn)行起來了鴻蒙 OS 版 HelloWorld。對于已經(jīng)有移動
發(fā)表于 11-02 19:38
嵌入式系統(tǒng)設(shè)計與實(shí)例開發(fā)—ARM與uC/OS-Ⅱ
嵌入式系統(tǒng)設(shè)計與實(shí)例開發(fā) ——ARM與uC/OS-Ⅱ
發(fā)表于 11-08 17:32
?0次下載
鴻蒙OS系統(tǒng)詳解
華為的鴻蒙OS是一款“面向未來”的操作系統(tǒng),是基于微內(nèi)核的全場景分布式OS,可按需擴(kuò)展,實(shí)現(xiàn)更廣泛的系統(tǒng)安全。目前主要用于智能物聯(lián)網(wǎng),今年將擴(kuò)展到智能手機(jī)上鴻蒙
鴻蒙OS 2.0手機(jī)開發(fā)者Beta版發(fā)布會在京舉辦
三個月前,鴻蒙OS 2.0正式在華為開發(fā)者大會2020亮相。12月16日,鴻蒙OS 2.0手機(jī)開發(fā)
華為發(fā)布鴻蒙OS Beta版
昨天華為發(fā)布鴻蒙OS Beta版了?鴻蒙系統(tǒng)一直在按照既有步伐前進(jìn),現(xiàn)在華為發(fā)布鴻蒙OS Beta版,而且一些生態(tài)
鴻蒙OS與Lite OS的區(qū)別是什么
鴻蒙OS鴻蒙OS面向未來、面向全場景、分布式。在單設(shè)備系統(tǒng)能力基礎(chǔ)上,鴻蒙OS提出了基于同一套系
鴻蒙os怎么升級
6月2日,華為正式發(fā)布了鴻蒙armonyOS 2系統(tǒng),那么鴻蒙os如何升級?現(xiàn)將鴻蒙os升級方式告知如下。
華為開發(fā)者大會2021鴻蒙os在哪場
華為開發(fā)者大會2021將在10月22日-24日舉辦,地點(diǎn)為東莞松山湖,鴻蒙os 3.0或?qū)⑴c我們見面,那么華為開發(fā)者大會2021鴻蒙
鴻蒙OS開發(fā)教學(xué):【編程之重器-裝飾器】
@StorageLink
9. @Provide
10. @Consume
11. @Observed
12. @Builder
13. @BuilderParam
14.
鴻蒙OS開發(fā)實(shí)例:【ArkTS類庫多線程@Concurrent裝飾器校驗并發(fā)函數(shù)】
在使用TaskPool時,執(zhí)行的并發(fā)函數(shù)需要使用該裝飾器修飾,否則無法通過相關(guān)校驗。從API version 9開始,該裝飾器支持在ArkTS卡片中使用。
鴻蒙OS開發(fā)實(shí)例:【裝飾器-@BuilderParam】
評論