衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙OS開發實例:【裝飾器-@BuilderParam】

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

背景

這是一個基礎概念,其實沒有什么原因,練習過程中,自然可以感受到其用法,后期加上真實項目的演練,會形成習慣

功能核心理念

“在自定義組件中添加一個點擊跳轉操作。若直接在組件內嵌入事件方法,將會導致所有引入該自定義組件的地方均增加了該功能。為解決此問題,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

    瀏覽量

    4538
收藏 人收藏

    評論

    相關推薦

    鴻蒙OS開發實例:【裝飾@Observed@ObjectLink】

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

    鴻蒙OS開發實例:【頁面傳值跳轉】

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

    鴻蒙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 應用開發初體驗

    的 IDE、鴻蒙生態的開發語言 ArkTS,通過模擬運行起來了鴻蒙 OS 版 HelloWorld。對于已經有移動
    發表于 11-02 19:38

    嵌入式系統設計與實例開發—ARM與uC/OS-Ⅱ

    嵌入式系統設計與實例開發 ——ARM與uC/OS-Ⅱ
    發表于 11-08 17:32 ?0次下載

    鴻蒙OS系統詳解

    華為的鴻蒙OS是一款“面向未來”的操作系統,是基于微內核的全場景分布式OS,可按需擴展,實現更廣泛的系統安全。目前主要用于智能物聯網,今年將擴展到智能手機上鴻蒙
    的頭像 發表于 11-12 11:24 ?1.4w次閱讀

    鴻蒙OS 2.0手機開發者Beta版發布會在京舉辦

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

    華為發布鴻蒙OS Beta版

    昨天華為發布鴻蒙OS Beta版了?鴻蒙系統一直在按照既有步伐前進,現在華為發布鴻蒙OS Beta版,而且一些生態
    的頭像 發表于 12-17 08:41 ?2930次閱讀

    鴻蒙OS與Lite OS的區別是什么

    鴻蒙OS鴻蒙OS面向未來、面向全場景、分布式。在單設備系統能力基礎上,鴻蒙OS提出了基于同一套系
    的頭像 發表于 12-24 12:40 ?5104次閱讀

    鴻蒙os怎么升級

    6月2日,華為正式發布了鴻蒙armonyOS 2系統,那么鴻蒙os如何升級?現將鴻蒙os升級方式告知如下。
    的頭像 發表于 06-08 16:26 ?2807次閱讀

    華為開發者大會2021鴻蒙os在哪場

    華為開發者大會2021將在10月22日-24日舉辦,地點為東莞松山湖,鴻蒙os 3.0或將與我們見面,那么華為開發者大會2021鴻蒙
    的頭像 發表于 10-22 15:24 ?1955次閱讀

    鴻蒙OS開發教學:【編程之重-裝飾

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

    鴻蒙OS開發實例:【ArkTS類庫多線程@Concurrent裝飾校驗并發函數】

    在使用TaskPool時,執行的并發函數需要使用該裝飾修飾,否則無法通過相關校驗。從API version 9開始,該裝飾支持在ArkTS卡片中使用。
    的頭像 發表于 04-02 14:45 ?788次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b><b class='flag-5'>實例</b>:【ArkTS類庫多線程@Concurrent<b class='flag-5'>裝飾</b><b class='flag-5'>器</b>校驗并發函數】
    太阳城百家乐杀祖玛| 南昌县| 百家乐拍照看| 百家乐扑克桌| 百家乐平注法口诀| 风水24山代表什么意思| 百家乐官网投注网站是多少| 大发888平台啥时候最赢钱| 百家乐定位胆技巧| 全景网百家乐的玩法技巧和规则 | 金狮国际| 信博娱乐| 一二博| 分宜县| 百家乐官网单注技巧| 皇冠网小说微博| 百家乐投注| 马牌百家乐官网娱乐城| 百家乐官网筹码素材| 百家乐官网有多少局| 百家乐官网玩法守则| 长治市| 玩百家乐官网新太阳城| 连环百家乐官网怎么玩| 老人头百家乐官网的玩法技巧和规则 | 澳门百家乐官网玩法心得技巧| 百家乐官网网络游戏平台| 沙龙百家乐官网娱乐场| 缅甸百家乐官网龙虎斗| 怎样打百家乐官网的玩法技巧和规则 | 百家乐官网网投开户| 百家乐官网龙虎斗扎金花| 百家乐官网五湖四海娱乐平台| 谁会玩百家乐官网的玩法技巧和规则| 视频百家乐官网平台| 百家乐赌博技巧论坛| 聚众玩百家乐的玩法技巧和规则| 兄弟百家乐的玩法技巧和规则| 百家乐游戏网上投注| 大发888大奖| 百家乐官网免费路单|