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

鴻蒙開發(fā)之狀態(tài)管理

這篇具有很好參考價值的文章主要介紹了鴻蒙開發(fā)之狀態(tài)管理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

@State 組件內狀態(tài)

  • @State裝飾的變量,會和自定義組件的渲染綁定起來。當狀態(tài)改變時,UI會發(fā)生對應的渲染改變。
  • 在狀態(tài)變量相關裝飾器中,@State是最基礎的,使變量擁有狀態(tài)屬性的裝飾器,它也是大部分狀態(tài)變量的數(shù)據源。

裝飾器使用規(guī)則

  • 同步類型:不與父組件中任何類型的變量同步。
  • 允許裝飾的變量類型:Object、class、string、number、boolean、enum類型,以及這些類型的數(shù)組,且類型必須被指定。
  • 被裝飾變量的初始值:必須本地初始化。

變量的傳遞/訪問規(guī)則

  • 從父組件初始化:可選,從父組件初始化或者本地初始化。如果從父組件初始化將會覆蓋本地初始化。但實際上編輯器并不希望你這樣做,代碼不會報錯但是會劃紅線提示。
  • 用于初始化子組件:@State裝飾的變量支持初始化子組件的常規(guī)變量、@State、@Link、@Prop、@Provide。
  • 是否支持組件外訪問:不支持,只能在組件內訪問。

鴻蒙變量改變uil不刷新,鴻蒙

觀察變化和行為表現(xiàn)

  • 并不是狀態(tài)變量的所有更改都會引起UI的刷新,只有可以被框架觀察到的修改才會引起UI刷新。
  • 當裝飾的數(shù)據類型為boolean、string、number類型時,可以觀察到數(shù)值的變化。
  • 當裝飾的數(shù)據類型為class或者Object時,可以觀察到自身的賦值的變化,和其屬性賦值的變化。
  • 當裝飾的對象是array時,可以觀察到數(shù)組本身的賦值和添加、刪除、更新數(shù)組的變化。

@Props 父組件傳入的狀態(tài) - 單向同步

  • @Prop變量允許在本地修改,但修改后的變化不會同步回父組件。
  • 當父組件中的數(shù)據源更改時,與之相關的@Prop裝飾的變量都會自動更新。
  • 如果子組件已在本地修改了@Prop變量,而在父組件中對應的@State變量被修改后,子組件本地修改的@Prop變量值將被覆蓋。
  • @Prop裝飾器不能在@Entry裝飾的自定義組件中使用。

裝飾器使用規(guī)則

  • 同步類型:單向同步。
  • 允許裝飾的變量類型:string、number、boolean、enum類型。不支持any,必須指定類型。
  • 被裝飾變量的初始值:允許本地初始化。

變量的傳遞/訪問規(guī)則

  • 從父組件初始化:如果本地有初始化,則是可選的(但這種方式編輯器會報etslint錯誤)。沒有的話,則必選
  • 用于初始化子組件:@Prop支持去初始化子組件中的常規(guī)變量、@State、@Link、@Prop、@Provide。
  • 是否支持組件外訪問:不支持,只能在組件內訪問。

鴻蒙變量改變uil不刷新,鴻蒙

思考:如何單向綁定非簡單類型數(shù)據?

@Link 父子組件共用的狀態(tài) - 雙向同步

  • 子組件中被@Link裝飾的變量與其父組件中對應的數(shù)據源建立雙向數(shù)據綁定。
  • @Link裝飾器不能在@Entry裝飾的自定義組件中使用。

裝飾器使用規(guī)則

  • 同步類型:雙向同步。
  • 允許裝飾的變量類型:Object、class、string、number、boolean、enum類型,以及這些類型的數(shù)組。類型必須被指定,且和雙向綁定狀態(tài)變量的類型相同。
  • 被裝飾變量的初始值:禁止本地初始化。

變量的傳遞/訪問規(guī)則

  • 從父組件初始化和更新:必選
  • 用于初始化子組件:允許,可用于初始化常規(guī)變量、@State、@Link、@Prop、@Provide。
  • 是否支持組件外訪問:私有,只能在所屬組件內訪問。

鴻蒙變量改變uil不刷新,鴻蒙

@Provide 與 @Consume 跨組件雙向通信

  • @Provide裝飾的狀態(tài)變量自動對其所有后代組件可用,即該變量被“provide”給他的后代組件。由此可見,@Provide的方便之處在于,開發(fā)者不需要多次在組件之間傳遞變量。
  • 后代通過使用@Consume去獲取@Provide提供的變量,建立在@Provide和@Consume之間的雙向數(shù)據同步,與@State/@Link不同的是,前者可以在多層級的父子組件之間傳遞。
  • @Provide和@Consume可以通過相同的變量名或者相同的變量別名綁定,變量類型必須相同。
// 通過相同的變量名綁定
@Provide a: number = 0;
@Consume a: number;

// 通過相同的變量別名綁定
@Provide('a') b: number = 0;
@Consume('a') c: number;

裝飾器說明

  • @State的規(guī)則同樣適用于@Provide,差異為@Provide還作為多層后代的同步源。
  • @Link的規(guī)則同樣適用于@Consume,差異為@Consume可在多層父代的找到同步源。

變量的傳遞/訪問規(guī)則

鴻蒙變量改變uil不刷新,鴻蒙
鴻蒙變量改變uil不刷新,鴻蒙

@Observed裝飾器和@ObjectLink裝飾器:嵌套類對象屬性變化

  • @ObjectLink和@Observed類裝飾器用于在涉及嵌套對象或數(shù)組的場景中進行雙向數(shù)據同步

  • 被@Observed裝飾的類,可以被觀察到屬性的變化

  • 子組件中@ObjectLink裝飾器裝飾的狀態(tài)變量用于接收@Observed裝飾的類的實例,和父組件中對應的狀態(tài)變量建立雙向數(shù)據綁定。

  • 單獨使用@Observed是沒有任何作用的,需要搭配@ObjectLink或者@Prop使用。

  • 具體用法看Demo5、Demo6文章來源地址http://www.zghlxwxcb.cn/news/detail-809413.html

AppStorage:應用全局的UI狀態(tài)存儲

  • AppStorage是在應用啟動的時候會被創(chuàng)建的單例。它提供應用狀態(tài)數(shù)據的中心存儲。
  • 這些狀態(tài)數(shù)據在應用級別都是可訪問的,屬性通過唯一的鍵字符串值訪問。
  • AppStorage中的屬性可以被雙向同步

@StorageLink-雙向同步

@StorageProp-單向同步

PersistentStorage:持久化存儲UI狀態(tài)

  • PersistentStorage的作用是持久化存儲選定的AppStorage屬性,以確保這些屬性在應用程序重新啟動時的值與應用程序關閉時的值相同。

@Watch裝飾器:狀態(tài)變量更改通知

  • @Watch用于監(jiān)聽狀態(tài)變量的變化,當狀態(tài)變量變化時,@Watch的回調方法將被調用。
  • @Watch在ArkUI框架內部判斷數(shù)值有無更新使用的是嚴格相等(===)
  • 對象類型的屬性修改,以及數(shù)組類型的修改,均會觸發(fā)@Watch

到了這里,關于鴻蒙開發(fā)之狀態(tài)管理的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

領支付寶紅包贊助服務器費用

相關文章

  • 鴻蒙Harmony--狀態(tài)管理器--@Prop詳解

    鴻蒙Harmony--狀態(tài)管理器--@Prop詳解

    縱橫千里獨行客,何懼前路雨瀟瀟。夜半濁酒慰寂寞,天明走馬入紅塵。且將新火試新茶,詩酒趁年華。青春以末,壯志照舊,生活以悟,前路未明。時間善變,可執(zhí)著翻不了篇。時光磨我少年心,卻難滅我少年志,壯士活古不活皮。加油。 目錄 一,定義 二,裝飾器使用規(guī)

    2024年02月01日
    瀏覽(49)
  • 鴻蒙App開發(fā)-網絡請求-下拉刷新三方庫-底部Tab欄-滾動組件(含源碼)

    鴻蒙App開發(fā)-網絡請求-下拉刷新三方庫-底部Tab欄-滾動組件(含源碼)

    本文介紹一個基于鴻蒙ArkTS開發(fā)的App,是一個包含輪播圖、文章列表和 Web 頁面等功能的多頁面應用。 本文主要內容包括: 一、效果圖 首頁 詳情頁 ?? 二、內容簡介 1.底部Tab欄和兩個頁面 ????????App底部是一個TabBar,點擊TabBar可以切換上面的頁面。共包含兩個頁面,一個

    2024年02月01日
    瀏覽(25)
  • 鴻蒙Harmony--狀態(tài)管理器-@Observed裝飾器和@ObjectLink裝飾器詳解

    鴻蒙Harmony--狀態(tài)管理器-@Observed裝飾器和@ObjectLink裝飾器詳解

    ?經歷的越多,越喜歡簡單的生活,干凈的東西,清楚的感覺,有結果的事,和說到做到的人。把圈子變小,把語放緩,把心放寬,用心做好手邊的事兒,該有的總會有的! 目錄 一,定義 二,裝飾器說明 三,變量的傳遞/訪問規(guī)則說明 ?四,使用 1,簡單對象的使用 2,嵌套對

    2024年02月01日
    瀏覽(26)
  • 鴻蒙Harmony--狀態(tài)管理器--@Provide裝飾器和@Consume裝飾器詳解

    鴻蒙Harmony--狀態(tài)管理器--@Provide裝飾器和@Consume裝飾器詳解

    今天是1月11日號星期四,農歷臘月初一,辭舊的歲月里,愿你守得云開、終見月明,迎新的時光中,愿你心御寒冬、順遂無憂,歲末冬深,希望接下來的日子里足夠幸運,攢足勇氣、信心和運氣,去迎接新的一年,去遇見更好的自己! 目錄 一,定義 二,特性 三,裝飾器說明

    2024年02月01日
    瀏覽(19)
  • 【Rust 基礎篇】Rust可變靜態(tài)變量:全局狀態(tài)的可變性管理

    Rust是一種以安全性和高效性著稱的系統(tǒng)級編程語言,其設計哲學是在不損失性能的前提下,保障代碼的內存安全和線程安全。為了實現(xiàn)這一目標,Rust引入了\\\"所有權系統(tǒng)\\\"、\\\"借用檢查器\\\"等特性,有效地避免了常見的內存安全問題。然而,有時候我們需要在程序的整個生命周期

    2024年02月15日
    瀏覽(21)
  • C++筆記之設計模式全局狀態(tài)管理類:使整個工程項目中的所有函數(shù)可以訪問同一個變量,并且能夠感知到這個變量的變化(變量共享)

    C++筆記之設計模式全局狀態(tài)管理類:使整個工程項目中的所有函數(shù)可以訪問同一個變量,并且能夠感知到這個變量的變化(變量共享)

    —— 杭州 2024-03-21 夜 實現(xiàn)方法 : 全局變量(不介紹) 單例模式 全局狀態(tài)管理類 全局狀態(tài)管理類+單例模式 靜態(tài)變量或靜態(tài)成員(不介紹) code review!

    2024年03月22日
    瀏覽(110)
  • vue 改變數(shù)據后,數(shù)據變化頁面不刷新

    vue 改變數(shù)據后,數(shù)據變化頁面不刷新

    在vue項目中,會遇到修改完數(shù)據,但是視圖卻沒有更新的情況 vue 改變數(shù)據后,數(shù)據變化頁面不刷新 vue 改變數(shù)據后,需要滑動頁面,數(shù)據才更新 vue中表格數(shù)據已改變,頁面卻未更新數(shù)據 方法一:使用this.$forceUpdate()強制刷新 使用方法:直接調用即可,或者放到html里面使用

    2024年02月11日
    瀏覽(24)
  • Qt QTableView 實現(xiàn)數(shù)據改變表格自動刷新

    這里提供一份簡單的代碼示例,實現(xiàn)QTableView實時刷新數(shù)據: 在代碼中,我們首先創(chuàng)建一個QStandardItemModel數(shù)據模型,并設置表格的行數(shù)和列數(shù),同時設置表頭和填充數(shù)據。然后將數(shù)據模型綁定到QTableView中,并實現(xiàn)數(shù)據變化自動刷新的功能。最后顯示QWidget窗口。 在實際開發(fā)中

    2024年02月13日
    瀏覽(129)
  • 鴻蒙OS開發(fā)實戰(zhàn):【網絡管理HTTP數(shù)據請求】

    鴻蒙OS開發(fā)實戰(zhàn):【網絡管理HTTP數(shù)據請求】

    應用通過HTTP發(fā)起一個數(shù)據請求,支持常見的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。 HTTP數(shù)據請求功能主要由http模塊提供。 使用該功能需要申請ohos.permission.INTERNET權限。 涉及的接口如下表,具體的接口說明請參考API文檔。 接口名 功能描述 createHttp() 創(chuàng)建一個ht

    2024年04月29日
    瀏覽(20)
  • uniapp 中使用 rem 以及改變窗口動態(tài)刷新頁面

    注意:頁面元素需要全部使用?rem 作為單位。 1.使用 uniapp 中的頁面屬性配置節(jié)點,page-meta,注意放在根元素的位置,也就是 template下面的第一層 2.獲取屏幕大小以及監(jiān)聽窗口改變事件 3. app.vue 頁面觸發(fā)重新渲染頁面

    2024年01月24日
    瀏覽(16)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包