HarmonyOS-ArkUI V2裝飾器: @Provider和@Consumer裝飾器:跨組件層級雙向同步

作用

我們在之前學習的那些控件中,各有特點,也各有缺陷,至今沒有痛痛快快的出現過真正能跨組件的雙向綁定的裝飾器。

比如

  • @Local裝飾器,不能跨組件
  • @Param裝飾器呢,能跨組件傳遞,但是僅僅就是下一層組件接收參數。另外,它是單向傳遞,不可被重新賦值。如果您非要改值則用@Once修飾,改了父組件也不會同步。非要達成雙向傳遞的效果,那就搞個@Event寫回調函數,讓父組件實現,完成改值的能力。比較麻煩。

我們有時候需要一種能力是,對于組件而言。爺爺組件直接傳給孫子組件,父組件不需要某狀態變量。并且孫子組件如果改了值,或者爺爺組件改了值,雙向同步給彼此。從而是界面刷新邏輯正常。

這個@Provider和@Consumer裝飾器的配合使用,就是來完成這種效果的。

使用方式

介紹

@Provider需要與@Consumer配合使用。兩者通過一個key建立聯結。此key表現在,這兩個裝飾器都接收一個叫aliasName的參數,用來指定其修飾的變量的別名。之后靠這個別名來尋找綁定關系。

@Provider屬性裝飾器

說明

裝飾器參數

aliasName?:string, 別名,缺省時默認為屬性名,建議最好寫這個參數

支持類型

自定義組件中成員變量。屬性類型可以為number,string, boolean, class, Array, Date, Map, Set 等類型。支持裝飾箭頭函數。

從父組件初始化

禁止

本地初始化

必須本地初始化

觀察能力

能力等同于@Trace。變化同步給對應的@Consumer

@Consumer屬性裝飾器

說明

裝飾器參數

aliasName?:string, 別名,缺省時默認為屬性名,向上查找最近的@Provider,建議最好寫這個參數

可裝飾的變量

自定義組件中的成員變量。屬性的類型可以是number,string,boolean,Data,Array,Map,Set等類型,支持箭頭函數。

從父組件初始化

禁止

本地初始化

必須本地初始化

觀察能力

</

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

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

相關文章

索引下推(Index Condition Pushdown, ICP)

概念 索引下推是一種數據庫查詢優化技術&#xff0c;通過在存儲引擎層面應用部分WHERE條件來減少不必要的數據讀取。它特別適用于復合索引的情況&#xff0c;因為它可以在索引掃描階段就排除不符合全部條件的數據行&#xff0c;而不是將所有可能匹配的記錄加載到服務器層再進行…

idea在線離線安裝插件教程

概述 對于小白來說&#xff0c;剛使用idea時&#xff0c;還有很多不懂的地方&#xff0c;這里&#xff0c;簡單介紹下如何安裝插件。讓小白能容易上手全盤idea。 1、File -> Settings 2、找到 Plugins -> Marketplace 3、安裝 3.1、在線安裝 輸入想搜索的內容&#x…

豪越賦能消防安全管控,解鎖一體化內管“安全密碼”

在消防安全保障體系中&#xff0c;內部管理的高效運作是迅速、有效應對火災及各類災害事故的重要基礎。豪越科技憑借在消防領域的深耕細作與持續創新&#xff0c;深入剖析消防體系內部管理的痛點&#xff0c;以自主研發的消防一體化安全管控平臺&#xff0c;為行業發展提供了創…

ES6學習03-字符串擴展(unicode、for...of、字符串模板)和新方法()

一、字符串擴展 1. eg: 2.for...of eg: 3. eg: 二。字符串新增方法 1. 2. 3. 4. 5.

探索Streamlit在測試領域的高效應用:文檔讀取與大模型用例生成的完美前奏

大模型用例生成前置工作之文檔讀取——構建你的自動化測試基礎 在群友的極力推薦下&#xff0c;開始了streamlit的學習之旅。本文將介紹如何使用Streamlit開發一個多功能文檔處理工具&#xff0c;支持讀取、預覽、格式轉換和導出多種測試相關文檔&#xff08;YAML、JSON、DOCX…

flutter 桌面應用之窗口自定義

在開發桌面軟件的時候我們經常需要配置軟件的窗口的大小以及位置 我們有兩個框架選擇:window_manager和bitsdojo_window 對比bitsdojo_window 特性bitsdojo_windowwindow_manager自定義標題欄? 支持? 不支持控制窗口行為&#xff08;大小/位置&#xff09;?&#xff08;基本…

Cyber Weekly #51

賽博新聞 1、英偉達開源新模型&#xff0c;性能直逼DeepSeek-R1 本周&#xff0c;英偉達開源了基于Meta早期Llama-3.1-405B-Instruct模型開發的Llama-3.1-Nemotron-Ultra-253B-v1大語言模型&#xff0c;該模型擁有2530億參數&#xff0c;在多項基準測試中展現出與6710億參數的…

【JS】關于原型/原型鏈

本文會講解什么是原型&#xff0c;什么是原型鏈&#xff0c;以及查找原型的方法&#xff0c;最后會實現一個函數&#xff1a;判斷某對象是否有某屬性。 定義 原型&#xff1a;函數都有prototype屬性&#xff0c;稱作原型/原型對象 原型可以放一些方法和屬性&#xff0c;共享…

deskflow使用教程:一個可以讓兩臺電腦鼠標鍵盤截圖剪貼板共同使用的開源項目

首先去開源網站下載&#xff1a;Release v1.21.2 deskflow/deskflow 兩臺電腦都要下載這個文件 下載好后直接打開找到你想要的exe desflow.exe 然后你打開他&#xff0c;將兩臺電腦的TLS都關掉 下面步驟兩臺電腦都要完成&#xff1a; 電腦點開edit-》preferences 把這個取…

啥是Spring,有什么用,既然收費,如何免費創建SpringBoot項目,依賴下載不下來的解決方法,解決99%問題!

一、啥是Spring&#xff0c;為啥選擇它 我們平常說的Spring指的是Spring全家桶&#xff0c;我們為什么要選擇Spring&#xff0c;看看官方的話&#xff1a; 意思就是&#xff1a;用這個東西&#xff0c;又快又好又安全&#xff0c;反正就是好處全占了&#xff0c;所以我們選擇它…

正向代理 vs 反向代理:核心區別與應用場景詳解

目錄 代理服務器是什么&#xff1f; 正向代理&#xff08;Forward Proxy&#xff09;詳解 工作原理 典型應用場景 優缺點分析 反向代理&#xff08;Reverse Proxy&#xff09;詳解 工作原理 典型應用場景 優缺點分析 正向代理與反向代理的核心區別 對比表格 架構差異…

Matlab學習筆記五十:循環語句和條件語句的用法

1.說明 循環語句&#xff1a;for…end&#xff0c;while…end 條件語句&#xff1a;if…end&#xff0c;switch…case…end 其中if語句語法還可以是&#xff1a;for…else…end&#xff0c;for…elseif…else…end 2.簡單for程序實例 for x1:5 %循環遍歷1~5 yx5 end [1…

容器初始化Spring Boot項目原理,即web項目(war)包涉及相關類對比詳解

以下是關于 SpringBootServletInitializer、ServletContainerInitializer、SpringServletContainerInitializer、WebApplicationInitializer 和 ServletInitializer 的對比詳解及總結表格&#xff1a; 1. 核心對比詳解 (1) SpringBootServletInitializer 作用&#xff1a; S…

Linux 系統中打包與壓縮

以下是 Linux 系統中 打包與壓縮 的核心操作指南&#xff0c;涵蓋常用命令、格式對比及典型場景應用&#xff1a; 一、核心概念 打包&#xff08;Archiving&#xff09; 將多個文件或目錄合并為一個文件&#xff08;如 .tar&#xff09;&#xff0c;不改變文件體積。常用工具&a…

計算機組成原理(哈工大,會持續更新)

文章目錄 一 計算機組成概述1.1計算機系統簡介 一 計算機組成概述 1.1計算機系統簡介 計算機軟硬件的概念 計算機系統包含兩個部分一個部分為硬件&#xff0c;另一個部分為軟件 硬件&#xff1a;硬件包括我們能直觀看到的東西&#xff0c;也就是我們計算機的實體&#xff0…

ngx_conf_handler

定義在 src\core\ngx_conf_file.c static ngx_int_t ngx_conf_handler(ngx_conf_t *cf, ngx_int_t last) {char *rv;void *conf, **confp;ngx_uint_t i, found;ngx_str_t *name;ngx_command_t *cmd;name cf->args->elts;found 0;for (…

Ubuntu系統美化

Ubuntu系統美化 一、Grub設置 1. 安裝Grub Customizer【推薦】 Grub Customizer是一個用于自定義 GRUB 引導菜單的實用程序 sudo add-apt-repository ppa:danielrichter2007/grub-customizer && sudo apt update && sudo apt install -y grub-customizer2.…

零基礎HTML·筆記(持續更新…)

基礎認知 HTML標簽的結構 <strong>文字變粗</strong> &#xff1c;開始標簽&#xff1e;內容&#xff1c;結束標簽&#xff1e; 結構說明&#xff1a; 標簽由<、>、1、英文單詞或字母組成。并且把標簽中<>包括起來的英文單詞或字母稱為標簽名。常…

nmcli創建wpa-psk2 wifi熱點

1. 創建新的WiFi連接&#xff1a; sudo nmcli connection add type wifi ifname wlan0 con-name WiFi名稱 autoconnect yes ssid WiFi名稱 2. 配置接入點模式和IP共享&#xff1a; sudo nmcli connection modify WiFi名稱 802-11-wireless.mode ap 802-11-wireless.band …

【消息隊列kafka_中間件】一、快速入門分布式消息隊列

在當今大數據和分布式系統盛行的時代&#xff0c;消息隊列作為一種關鍵的中間件技術&#xff0c;發揮著舉足輕重的作用。其中&#xff0c;Apache Kafka 以其卓越的性能、高可擴展性和強大的功能&#xff0c;成為眾多企業構建分布式應用的首選消息隊列解決方案。本篇文章將帶你深…