0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙OS開發(fā)實(shí)例:【裝飾器-@BuilderParam】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-28 17:40 ? 次閱讀

背景

這是一個(gè)基礎(chǔ)概念,其實(shí)沒有什么原因,練習(xí)過程中,自然可以感受到其用法,后期加上真實(shí)項(xiàng)目的演練,會(huì)形成習(xí)慣

功能核心理念

“在自定義組件中添加一個(gè)點(diǎn)擊跳轉(zhuǎn)操作。若直接在組件內(nèi)嵌入事件方法,將會(huì)導(dǎo)致所有引入該自定義組件的地方均增加了該功能。為解決此問題,ArkUI引入了@BuilderParam裝飾器”

這樣的場(chǎng)景在任何平臺(tái)任何公司都會(huì)遇到,是否采用在公共組件中定義某個(gè)功能還是在外部定義某個(gè)功能,都是取決于實(shí)際業(yè)務(wù)場(chǎng)景發(fā)生的概率。

@BuilderParam 要告知是:HarmonyOS有應(yīng)對(duì)這樣的機(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 })

      //二. 通過尾隨閉包初始化組件, 如果組件中包含兩個(gè)及以上@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)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 鴻蒙OS
    +關(guān)注

    關(guān)注

    0

    文章

    188

    瀏覽量

    4360
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙OS開發(fā)實(shí)例:【裝飾@Observed@ObjectLink】

    加深對(duì)@Observed@ObjectLink 裝飾器使用的理解,以小故事做注釋
    的頭像 發(fā)表于 03-28 17:05 ?926次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實(shí)例</b>:【<b class='flag-5'>裝飾</b><b class='flag-5'>器</b>@Observed@ObjectLink】

    鴻蒙OS開發(fā)實(shí)例:【頁面?zhèn)髦堤D(zhuǎn)】

    本篇主要介紹如何在HarmonyOS中,在頁面跳轉(zhuǎn)之間如何傳值 HarmonyOS 的頁面指的是帶有@Entry裝飾的文件,其不能獨(dú)自存在,必須依賴UIAbility這樣的組件容器 如下是官方關(guān)于State模型開發(fā)模式
    的頭像 發(fā)表于 03-29 20:16 ?2129次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實(shí)例</b>:【頁面?zhèn)髦堤D(zhuǎn)】

    鴻蒙OS應(yīng)用程序開發(fā)

    這份學(xué)習(xí)文檔主要是帶領(lǐng)大家在鴻蒙OS上學(xué)習(xí)開發(fā)一個(gè)應(yīng)用程序,主要知識(shí)點(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ā)初體驗(yàn)

    的 IDE、鴻蒙生態(tài)的開發(fā)語言 ArkTS,通過模擬運(yùn)行起來了鴻蒙 OS 版 HelloWorld。對(duì)于已經(jīng)有移動(dòng)
    發(fā)表于 11-02 19:38

    嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)—ARM與uC/OS-Ⅱ

    嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā) ——ARM與uC/OS-Ⅱ
    發(fā)表于 11-08 17:32 ?0次下載

    鴻蒙OS系統(tǒng)詳解

    華為的鴻蒙OS是一款“面向未來”的操作系統(tǒng),是基于微內(nèi)核的全場(chǎng)景分布式OS,可按需擴(kuò)展,實(shí)現(xiàn)更廣泛的系統(tǒng)安全。目前主要用于智能物聯(lián)網(wǎng),今年將擴(kuò)展到智能手機(jī)上鴻蒙
    的頭像 發(fā)表于 11-12 11:24 ?1.3w次閱讀

    鴻蒙OS 2.0手機(jī)開發(fā)者Beta版發(fā)布會(huì)在京舉辦

    三個(gè)月前,鴻蒙OS 2.0正式在華為開發(fā)者大會(huì)2020亮相。12月16日,鴻蒙OS 2.0手機(jī)開發(fā)
    的頭像 發(fā)表于 12-16 09:29 ?1.9w次閱讀

    華為發(fā)布鴻蒙OS Beta版

    昨天華為發(fā)布鴻蒙OS Beta版了?鴻蒙系統(tǒng)一直在按照既有步伐前進(jìn),現(xiàn)在華為發(fā)布鴻蒙OS Beta版,而且一些生態(tài)
    的頭像 發(fā)表于 12-17 08:41 ?2844次閱讀

    鴻蒙OS與Lite OS的區(qū)別是什么

    鴻蒙OS鴻蒙OS面向未來、面向全場(chǎng)景、分布式。在單設(shè)備系統(tǒng)能力基礎(chǔ)上,鴻蒙OS提出了基于同一套系
    的頭像 發(fā)表于 12-24 12:40 ?4852次閱讀

    鴻蒙os怎么升級(jí)

    6月2日,華為正式發(fā)布了鴻蒙armonyOS 2系統(tǒng),那么鴻蒙os如何升級(jí)?現(xiàn)將鴻蒙os升級(jí)方式告知如下。
    的頭像 發(fā)表于 06-08 16:26 ?2696次閱讀

    華為開發(fā)者大會(huì)2021鴻蒙os在哪場(chǎng)

    華為開發(fā)者大會(huì)2021將在10月22日-24日舉辦,地點(diǎn)為東莞松山湖,鴻蒙os 3.0或?qū)⑴c我們見面,那么華為開發(fā)者大會(huì)2021鴻蒙
    的頭像 發(fā)表于 10-22 15:24 ?1862次閱讀

    鴻蒙OS開發(fā)教學(xué):【編程之重-裝飾

    @StorageLink 9. @Provide 10. @Consume 11. @Observed 12. @Builder 13. @BuilderParam 14.
    的頭像 發(fā)表于 04-01 16:09 ?507次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>教學(xué):【編程之重<b class='flag-5'>器</b>-<b class='flag-5'>裝飾</b><b class='flag-5'>器</b>】

    鴻蒙OS開發(fā)實(shí)例:【ArkTS類庫多線程@Concurrent裝飾校驗(yàn)并發(fā)函數(shù)】

    在使用TaskPool時(shí),執(zhí)行的并發(fā)函數(shù)需要使用該裝飾修飾,否則無法通過相關(guān)校驗(yàn)。從API version 9開始,該裝飾支持在ArkTS卡片中使用。
    的頭像 發(fā)表于 04-02 14:45 ?567次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實(shí)例</b>:【ArkTS類庫多線程@Concurrent<b class='flag-5'>裝飾</b><b class='flag-5'>器</b>校驗(yàn)并發(fā)函數(shù)】