国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

HarmonyOS學(xué)習(xí)路之方舟開發(fā)框架—學(xué)習(xí)ArkTS語言(基本語法 四)

這篇具有很好參考價(jià)值的文章主要介紹了HarmonyOS學(xué)習(xí)路之方舟開發(fā)框架—學(xué)習(xí)ArkTS語言(基本語法 四)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

@BuilderParam裝飾器:引用@Builder函數(shù)

當(dāng)創(chuàng)建了自定義組件,并想對該組件添加特定功能時(shí),例如在自定義組件中添加一個(gè)點(diǎn)擊跳轉(zhuǎn)操作。若直接在組件內(nèi)嵌入事件方法,將會(huì)導(dǎo)致所有引入該自定義組件的地方均增加了該功能。為解決此問題,ArkUI引入了@BuilderParam裝飾器,@BuilderParam用來裝飾指向@Builder方法的變量,開發(fā)者可在初始化自定義組件時(shí)對此屬性進(jìn)行賦值,為自定義組件增加特定的功能。該裝飾器用于聲明任意UI描述的一個(gè)元素,類似slot占位符。

裝飾器使用說明

初始化@BuilderParam裝飾的方法

@BuildParam裝飾的方法只能被自定義構(gòu)建函數(shù)(@Builder裝飾的方法)初始化。

  • 使用所屬自定義組件的自定義構(gòu)建函數(shù)或者全局的自定義構(gòu)建函數(shù),在本地初始化@BuilderParam。
@Builder function GlobalBuilder0() {}

@Component
struct Child {
  @Builder doNothingBuilder() {};

  @BuilderParam aBuilder0: () => void = this.doNothingBuilder;
  @BuilderParam aBuilder1: () => void = GlobalBuilder0;
  build(){}
}
  • 用父組件自定義構(gòu)建函數(shù)初始化子組件@BuildParam裝飾的方法。
@Component
struct Child {
  @BuilderParam aBuilder0: () => void;

  build() {
    Column() {
      this.aBuilder0()
    }
  }
}

@Entry
@Component
struct Parent {
  @Builder componentBuilder() {
    Text(`Parent builder `)
  }

  build() {
    Column() {
      Child({ aBuilder0: this.componentBuilder })
    }
  }
}
  • 需注意this指向正確。

以下示例中,Parent組件在調(diào)用this.componentBuilder()時(shí),this.label指向其所屬組件,即“Parent”。@Builder componentBuilder()傳給子組件@BuilderParam aBuilder0,在Child組件中調(diào)用this.aBuilder0()時(shí),this.label指向在Child的label,即“Child”。

@Component
struct Child {
  label: string = `Child`
  @BuilderParam aBuilder0: () => void;

  build() {
    Column() {
      this.aBuilder0()
    }
  }
}

@Entry
@Component
struct Parent {
  label: string = `Parent`

  @Builder componentBuilder() {
    Text(`${this.label}`)
  }

  build() {
    Column() {
      this.componentBuilder()
      Child({ aBuilder0: this.componentBuilder })
    }
  }
}

使用場景

參數(shù)初始化組件

@BuilderParam裝飾的方法可以是有參數(shù)和無參數(shù)的兩種形式,需與指向的@Builder方法類型匹配。@BuilderParam裝飾的方法類型需要和@Builder方法類型一致。

@Builder function GlobalBuilder1($$ : {label: string }) {
  Text($$.label)
    .width(400)
    .height(50)
    .backgroundColor(Color.Blue)
}

@Component
struct Child {
  label: string = 'Child'
  // 無參數(shù)類,指向的componentBuilder也是無參數(shù)類型
  @BuilderParam aBuilder0: () => void;
  // 有參數(shù)類型,指向的GlobalBuilder1也是有參數(shù)類型的方法
  @BuilderParam aBuilder1: ($$ : { label : string}) => void;

  build() {
    Column() {
      this.aBuilder0()
      this.aBuilder1({label: 'global Builder label' } )
    }
  }
}

@Entry
@Component
struct Parent {
  label: string = 'Parent'

  @Builder componentBuilder() {
    Text(`${this.label}`)
  }

  build() {
    Column() {
      this.componentBuilder()
      Child({ aBuilder0: this.componentBuilder, aBuilder1: GlobalBuilder1 })
    }
  }
}

尾隨閉包初始化組件

在自定義組件中使用@BuilderParam裝飾的屬性時(shí)也可通過尾隨閉包進(jìn)行初始化。在初始化自定義組件時(shí),組件后緊跟一個(gè)大括號“{}”形成尾隨閉包場景。

說明

此場景下自定義組件內(nèi)有且僅有一個(gè)使用@BuilderParam裝飾的屬性。

將尾隨閉包內(nèi)的內(nèi)容看做@Builder裝飾的函數(shù)傳給@BuilderParam。示例如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-582990.html

// xxx.ets
@Component
struct CustomContainer {
  @Prop header: string;
  @BuilderParam closer: () => void

  build() {
    Column() {
      Text(this.header)
        .fontSize(30)
      this.closer()
    }
  }
}

@Builder function specificParam(label1: string, label2: string) {
  Column() {
    Text(label1)
      .fontSize(30)
    Text(label2)
      .fontSize(30)
  }
}

@Entry
@Component
struct CustomContainerUser {
  @State text: string = 'header';

  build() {
    Column() {
      // 創(chuàng)建CustomContainer,在創(chuàng)建CustomContainer時(shí),通過其后緊跟一個(gè)大括號“{}”形成尾隨閉包
      // 作為傳遞給子組件CustomContainer @BuilderParam closer: () => void的參數(shù)
      CustomContainer({ header: this.text }) {
        Column() {
          specificParam('testA', 'testB')
        }.backgroundColor(Color.Yellow)
        .onClick(() => {
          this.text = 'changeHeader';
        })
      }
    }
  }
}

到了這里,關(guān)于HarmonyOS學(xué)習(xí)路之方舟開發(fā)框架—學(xué)習(xí)ArkTS語言(基本語法 四)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • HarmonyOS學(xué)習(xí)路之方舟開發(fā)框架—學(xué)習(xí)ArkTS語言(狀態(tài)管理 二)

    HarmonyOS學(xué)習(xí)路之方舟開發(fā)框架—學(xué)習(xí)ArkTS語言(狀態(tài)管理 二)

    @Prop裝飾的變量可以和父組件建立單向的同步關(guān)系。@Prop裝飾的變量是可變的,但是變化不會(huì)同步回其父組件。 @Prop裝飾的變量和父組件建立單向的同步關(guān)系: @Prop變量允許在本地修改,但修改后的變化不會(huì)同步回父組件。 當(dāng)父組件中的數(shù)據(jù)源更改時(shí),與之相關(guān)的@Prop裝飾的變

    2024年02月14日
    瀏覽(47)
  • HarmonyOS學(xué)習(xí)路之方舟開發(fā)框架—學(xué)習(xí)ArkTS語言(狀態(tài)管理 六)

    HarmonyOS學(xué)習(xí)路之方舟開發(fā)框架—學(xué)習(xí)ArkTS語言(狀態(tài)管理 六)

    AppStorage是應(yīng)用全局的UI狀態(tài)存儲(chǔ),是和應(yīng)用的進(jìn)程綁定的,由UI框架在應(yīng)用程序啟動(dòng)時(shí)創(chuàng)建,為應(yīng)用程序UI狀態(tài)屬性提供中央存儲(chǔ)。 和LocalStorage不同的是,LocalStorage是頁面級的,通常應(yīng)用于頁面內(nèi)的數(shù)據(jù)共享。而對于AppStorage,是應(yīng)用級的全局狀態(tài)共享。 AppStorage是在應(yīng)用啟動(dòng)

    2024年02月20日
    瀏覽(26)
  • HarmonyOS學(xué)習(xí)路之方舟開發(fā)框架—方舟開發(fā)框架(ArkUI)概述

    HarmonyOS學(xué)習(xí)路之方舟開發(fā)框架—方舟開發(fā)框架(ArkUI)概述

    方舟開發(fā)框架(簡稱ArkUI)為HarmonyOS應(yīng)用的UI開發(fā)提供了完整的基礎(chǔ)設(shè)施,包括簡潔的UI語法、豐富的UI功能(組件、布局、動(dòng)畫以及交互事件),以及實(shí)時(shí)界面預(yù)覽工具等,可以支持開發(fā)者進(jìn)行可視化界面開發(fā)。 UI: 即用戶界面。開發(fā)者可以將應(yīng)用的用戶界面設(shè)計(jì)為多個(gè)功能

    2024年02月16日
    瀏覽(96)
  • HarmonyOS學(xué)習(xí)路之開發(fā)篇—Java UI框架(動(dòng)畫開發(fā))

    HarmonyOS學(xué)習(xí)路之開發(fā)篇—Java UI框架(動(dòng)畫開發(fā))

    動(dòng)畫是組件的基礎(chǔ)特性之一,精心設(shè)計(jì)的動(dòng)畫使UI變化更直觀,有助于改進(jìn)應(yīng)用程序的外觀并改善用戶體驗(yàn)。Java UI框架提供了幀動(dòng)畫、數(shù)值動(dòng)畫和屬性動(dòng)畫,并提供了將多個(gè)動(dòng)畫同時(shí)操作的動(dòng)畫集合。 幀動(dòng)畫是利用視覺暫留現(xiàn)象,將一系列靜止的圖片按序播放,給用戶產(chǎn)生動(dòng)

    2024年02月09日
    瀏覽(87)
  • HarmonyOS學(xué)習(xí)路之開發(fā)篇—Java UI框架(TableLayout)

    HarmonyOS學(xué)習(xí)路之開發(fā)篇—Java UI框架(TableLayout)

    TableLayout使用表格的方式劃分子組件。 TableLayout的共有XML屬性繼承自:Component TableLayout的自有XML屬性見下表: 屬性名稱 中文描述 取值 取值說明 使用案例 alignment_type 對齊方式 align_edges 表示TableLayout內(nèi)的組件按邊界對齊。 ohos:alignment_type=\\\"align_edges\\\" align_contents 表示TableLayout內(nèi)的

    2024年02月09日
    瀏覽(15)
  • HarmonyOS/OpenHarmony應(yīng)用開發(fā)-ArkTS語言基本語法說明

    HarmonyOS/OpenHarmony應(yīng)用開發(fā)-ArkTS語言基本語法說明

    圖1? 示例效果圖 ? 本示例中,ArkTS的基本組成如下所示。 圖2? ArkTS的基本組成 ? ? 裝飾器: 用于裝飾類、結(jié)構(gòu)、方法以及變量,并賦予其特殊的含義。如上述示例中@Entry、@Component和@State都是裝飾器,@Component表示自定義組件,@Entry表示該自定義組件為入口組件,@State表示組

    2024年02月07日
    瀏覽(37)
  • HarmonyOS學(xué)習(xí)路之開發(fā)篇—Java UI框架(PositionLayout&&AdaptiveBoxLayout)

    HarmonyOS學(xué)習(xí)路之開發(fā)篇—Java UI框架(PositionLayout&&AdaptiveBoxLayout)

    在PositionLayout中,子組件通過指定準(zhǔn)確的x/y坐標(biāo)值在屏幕上顯示。(0, 0)為左上角;當(dāng)向下或向右移動(dòng)時(shí),坐標(biāo)值變大;允許組件之間互相重疊。 PositionLayout示意圖 PositionLayout以坐標(biāo)的形式控制組件的顯示位置,允許組件相互重疊。 在layout目錄下的XML文件中創(chuàng)建PositionLayout并添

    2024年02月09日
    瀏覽(20)
  • HarmonyOS學(xué)習(xí)路之開發(fā)篇—Java UI框架(自定義組件與布局 一)

    HarmonyOS學(xué)習(xí)路之開發(fā)篇—Java UI框架(自定義組件與布局 一)

    HarmonyOS提供了一套復(fù)雜且強(qiáng)大的Java UI框架,其中Component提供內(nèi)容顯示,是界面中所有組件的基類。ComponentContainer作為容器容納Component或ComponentContainer對象,并對它們進(jìn)行布局。 Java UI框架也提供了一部分Component和ComponentContainer的具體子類,即常用的組件(比如:Text、Button、

    2024年02月09日
    瀏覽(14)
  • HarmonyOS學(xué)習(xí) -- ArkTS開發(fā)語言入門

    HarmonyOS學(xué)習(xí) -- ArkTS開發(fā)語言入門

    ArkTS是HarmonyOS主力應(yīng)用開發(fā)語言。它在TypeScript(簡稱TS)的基礎(chǔ)上,匹配ArkUI框架,擴(kuò)展了聲明式UI、狀態(tài)管理等相應(yīng)的能力,讓開發(fā)者以更簡潔、更自然的方式開發(fā)跨端應(yīng)用。 JavaScript是一種屬于網(wǎng)絡(luò)的高級腳本語言,已經(jīng)被廣泛應(yīng)用開發(fā),常用來為網(wǎng)頁添加各式各樣的動(dòng)態(tài)

    2024年02月08日
    瀏覽(28)
  • HarmonyOS學(xué)習(xí)路之開發(fā)篇—Java UI框架(JS FA調(diào)用Java PA)

    HarmonyOS學(xué)習(xí)路之開發(fā)篇—Java UI框架(JS FA調(diào)用Java PA)

    使用兼容JS的類Web開發(fā)范式的方舟開發(fā)框架提供了JS FA(Feature Ability)調(diào)用Java PA(Particle Ability)的機(jī)制,該機(jī)制提供了一種通道來傳遞方法調(diào)用、處理數(shù)據(jù)返回以及訂閱事件上。 當(dāng)前提供Ability和Internal Ability兩種調(diào)用方式。 Ability:擁有獨(dú)立的Ability生命周期,F(xiàn)A使用遠(yuǎn)端進(jìn)程

    2024年02月09日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包