ArkTS學習筆記_封裝復用之@builderParam裝飾器

ArkTS學習筆記_封裝復用之@builderParam裝飾器

  • 作用:
    在自定義組件中,該裝飾器用于裝飾函數成員變量,@builderParam裝飾的函數成員變量的值必須是經過@builder裝飾的方法。變量初始化后可以在自定義組件內調用。
  • 初始化:
    可以使用自定義組件的自定義構建函數進行初始化;也可以使用全局自定義構建函數初始化。初始化的工作一般由使用者進行。
  • 運用場景:
    比方,封裝了一個組件,這個組件有一個對外的回調函數(@builderParam裝飾的函數變量),當想讓調用者添加額外的新功能時,可以實現其回調函數(初始化@builderParam裝飾的函數變量)。
  • 簡單的說:
    @builderParam裝飾器用于聲明一個的成員函數變量,相當于在自定義組件中添加了一個占位符,調用該函數的地方就是占位的地方,當開發者調用該自定義組件時,想添加新的UI描述,就初始化即可,不需要添加新的U描述,可以不初始化。有點類似有容器功能的組件,可以讓調用者往里添加新組件。

裝飾器使用說明

  • 使用組件自身的自定義構建函數或者全局的自定義構建函數
// 全局構建函數
@Builder function overBuilder() {}@Component
struct Child { // 組件自定義構建函數 @Builder doNothingBuilder() {};// 使用自定義組件的自定義構建函數初始化@BuilderParam@BuilderParam customBuilderParam: () => void = this.doNothingBuilder;// 使用全局自定義構建函數初始化@BuilderParam@BuilderParam customOverBuilderParam: () => void = overBuilder;build(){}
}
  • 用父組件自定義的構建函數初始化子組件@BuilderParam裝飾的方法。
@Component
struct Child {// 聲明一個@BuilderParam函數變量@BuilderParam customBuilderParam: () => void;build() {Column() {// 占位的地方,會在此構建外面傳進來的組件  this.customBuilderParam()}}
}@Entry
@Component
struct Parent { // 組件自定義構建函數   @Builder componentBuilder() {Text(`Parent builder `)}build() {Column() {// 使用父組件的構建函數初始化子組件的@BuilderParam函數變量Child({ customBuilderParam: this.componentBuilder })}}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/45342.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45342.shtml
英文地址,請注明出處:http://en.pswp.cn/web/45342.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

移動應用性能關注分析哪些指標

移動應用常見性能指標 要對應用開展性能測試,首先需要了解需要重點關注哪些指標?指標的參考范圍大致是多少?可采用哪些工具收集這些指標?如何收集?如果指標有異常,大致有哪些high level的優化思路。這篇博客…

說一下GET請求和POST請求的區別

面試官常常會問到的一個問題就是:GET請求和POST請求的區別。因為一個看似簡單的問題就能考察出面試者對網絡協議和通信的掌握程度以及對前后端開發基礎知識是否了解、安全性意識是否足夠強,以及綜合分析與總結能力等。 所以答的好可以讓面試官對你刮目相…

YoloV8改進策略:卷積篇|Kan行天下之GRAM,KAN遇見Gram多項式V2版本

GRAM(GRAM可能是一個新提出的模型或方法的縮寫,這里我們根據上下文進行解釋)受到諸如TorchKAN和ChebyKAN等Kolmogorov-Arnold網絡(KAN)替代方案的啟發。GRAM引入了一種簡化的KAN模型,但同時利用了Gram多項式變換的簡單性。它與其他替代方案的不同之處在于其獨特的離散性特…

Vue3 使用emoji表情包 emoji-mart-vue-fast

文檔&#xff1a;emoji-mart-vue-fast - npm (npmjs.com) 非常簡單 代碼直接照抄即可 1. 引入 pnpm install emoji-mart-vue-fast 2. 使用 <template><Picker:data"emojiIndex":emojiSize"18":showPreview"false":infiniteScroll&quo…

【07】分布式事務解決方案

1、事務簡介 事務(Transaction)是訪問并可能更新數據庫中各種數據項的一個程序執行單元(unit)。在關系數據庫中&#xff0c;一個事務由一組SQL語句組成。事務應該具有ACID四個特性&#xff1a;原子性、一致性、隔離性、持久性。任何事務機制在實現時&#xff0c;都應該考慮事務…

J025_斗地主游戲案例開發(簡版)

一、需求描述 完成斗地主游戲的案例開發。 業務&#xff1a;總共有54張牌&#xff1b; 點數&#xff1a;3、4、5、6、7、8、9、10、J、Q、K、A、2 花色&#xff1a;黑桃、紅桃、方片、梅花 大小王&#xff1a;大王、小王 點數分別要組合4種花色&#xff0c;大小王各一張。…

[激光原理與應用-114]:南京科耐激光-激光焊接-焊中檢測-智能制程監測系統IPM介紹 - 18 - 產品宣傳、介紹、產品價值、幫助客戶解決的問題

目錄 一、第一印象 1.1 我是誰&#xff1f;產品是什么&#xff1f;產品在產業鏈中的位置 1.2 公司在產業鏈中的位置&#xff1f;公司簡介&#xff1f; 二、IPM工作原理 2.1 IPM系統組成 2.2 基于激光熔池光學檢測原理 2.3 基于信號特征的檢測原理 三、IPM產品如何與客…

2-17,18,19 -- 關于指針

指針(pointer 聲明指針 int *p;定義指針 int a 4; int *p &a; //指針p是指向變量a的地址的指針指針數組 int *arr[5];數組指針 int (*arr)[5];函數指針 int (*fun)(int,int) // 聲明一個指向函數的指針,這個函數的返回值是int,有兩個int的參數指針的指針 int **p;…

ArkTS學習筆記_封裝復用之@Styles裝飾器

ArkTS學習筆記_封裝復用之Styles裝飾器 背景&#xff1a; 在開發中&#xff0c;如果每個組件的樣式都需要單獨設置&#xff0c;就會出現大量代碼在進行重復樣式設置&#xff0c;雖然可以復制粘貼&#xff0c;但為了代碼簡潔性和后續方便維護&#xff0c;給出的思路是&#xff…

jmeter分布式(四)

一、gui jmeter的gui主要用來調試腳本 1、先gui創建腳本 先做一個腳本 演示&#xff1a;如何做混合場景的腳本&#xff1f; 用211的業務比例 ①啟動數據庫服務 數據庫服務&#xff1a;包括mysql、redis mysql端口默認3306 netstat -lntp | grep 3306處于監聽狀態&#xf…

深入了解MySQL中的innodb_lock_wait_timeout

引言 在數據庫管理中&#xff0c;確保數據的一致性和完整性是至關重要的。MySQL的InnoDB存儲引擎通過行級鎖定機制來實現這一點。然而&#xff0c;當多個事務同時操作數據庫時&#xff0c;可能會出現鎖等待的情況。了解并合理配置innodb_lock_wait_timeout參數&#xff0c;對于…

數據庫第6次作業

內容 1、創建視圖v_emp_dept_id_1&#xff0c;查詢銷售部門的員工姓名和家庭住址 2、創建視圖v_emp_dept&#xff0c;查詢銷售部門員工姓名和家庭住址及部門名稱。 3、創建視圖v_dept_emp_count(dept_name,emp_count,avg_salay)&#xff0c;統計每個部門人數并計算平均工資。 …

Spring 使用log4j

porn.xml 引入依賴 <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.23.1</version></dependency><dependency><groupId>org.apache.logging.log4j<…

解讀網傳《深圳IT圈?新解讀八小時工作制》

網傳深圳IT圈的新解讀八小時工作制 工作時間安排&#xff1a; 10:00-12:0014:00-18:0019:00-21:00 初看&#xff1a;有驚喜 上午開始時間晚&#xff1a;相對于傳統的9點開始&#xff0c;這種安排允許員工有更多的早晨時間&#xff0c;可以用來休息或處理個人事務。下午和晚上分…

typescript新規范及vue3常用的屬性解析【2024】

文章目錄 如在vue中 使用tyescript來規范定義類型解釋一下 < >的意思 定義 了 personList &#xff1a;是個數組 Array 且要告訴里面每一項 結構長什么樣 Array<PersonInter>definepropsvue3中的hooks組件父子組件 方法、數據、相互調用 如在vue中 使用tyescript來…

【LSTM和GRU極簡,和最新的TT也就是狀態】機器學習模型來學習狀態

LSTM&#xff08;長短期記憶網絡&#xff09;中的關鍵參數包括輸入門、遺忘門、輸出門、細胞狀態和隱藏狀態。以下是如何進行推理計算的示例&#xff1a; LSTM參數和公式 輸入門&#xff08;i_t&#xff09;&#xff1a;決定輸入的信息量。 遺忘門&#xff08;f_t&#xff0…

【React Native】做了一個簡約的雷達圖組件

本文目錄 【React Native】做了一個簡約的雷達圖組件獲取組件實現思路用法示例簡易用法自定義美化 結語 【React Native】做了一個簡約的雷達圖組件 最近在使用 react-native 中需要繪制雷達圖&#xff0c;沒有找到合適的小組件&#xff08;大的圖表庫未直接提供&#xff0c;需…

pico+unity3d運行測試方法

一. 發布并運行程序 這個就很簡單&#xff0c;電腦和pico數據庫連接、pico打開開發者模式、運行的時候選擇設備pico 二. pico串流助手 1.需要先下載pico的軟件 PICO Developer Center、并安裝串流助手、這種方式的話&#xff0c;安裝了向日葵的小伙伴可能有沖突、百度一下解…

c#中的特性

在C#中&#xff0c;特性&#xff08;Attributes&#xff09;是一種向程序元素&#xff08;如類、方法、屬性等&#xff09;添加元數據的方式。特性可以用來提供關于程序元素的附加信息&#xff0c;這些信息可以在編譯時和運行時被訪問。 特性主要有以下幾個用途&#xff1a; 提…

手機數據恢復篇:如何從 Android 設備內恢復數據

如何從 Android 內部存儲恢復數據&#xff1f; 要從 Android 內部存儲恢復已刪除的文件&#xff0c;您需要一個 Android 內部存儲恢復應用或程序。請繼續閱讀以獲取可靠的 Android 數據恢復軟件&#xff0c;并讓它幫助您從 Android 手機的內部存儲恢復數據。 是否有可能恢復 An…