【黑馬程序員】鴻蒙Next星河版項目實戰-守護助手APP應用開發-Day1-06-Tabs切換-更新設備信息

黑马程序员
28 位粉絲
1 觀看·2024年9月20日
本課程100% 鴻蒙NEXT星河版原生應用開發,API 12 版本 SDK。基本覆蓋主流APP的能力集,將來遷移項目都可以看這個項目,權限、位置、地圖、錄音、相冊、播放器、傳感器、通訊錄、數據庫等應有盡有。
好的 在剛的時候呢 我們這個叫做我的這個頁面呢 基本的一些數據的獲取啊
像硬件信息的一些獲取啊 電量的一些獲取啊 這個其實都已經算是逐步完成了啊
但是呢 在這裏啊 有一個小小的點啊 是需要注意的 就是現在的內存佔用啊 還有這個什麼
電池的這個電量啊什麼的 這些信息啊 他其實獲取完了之後 他就不會再變了啊
那就不會再變了 就比如說啊 我現在電量是100%
然後呢 一段時間我消化完了之後 是吧 比如說我 我切換出去 是吧 我切換出去 是吧
或者說怎麼的 然後我在這裏呢 改一下那個電池 是吧
好 這個模擬器裏面啊 這個設置頁裏面有一個叫做電池啊 電池這裏呢 我們可以把這個電池的電量給他改一下
對吧 但是改完之後呢 大家發現 哎 這裏呢 好像回來是還是這個叫做
8分半 是吧 那這個就有一點不太對了 是吧 這有一點不太對啊 好 那這裏怎麼辦呢 是吧
哎 是不是想辦法把這個紙給他
更新一下 是吧 把這個紙給他更新一下 那至於這個紙呢 如果想要更新的話 那我們像
如果切頁面的時候呢 給他更新 如果他是頁面的話 那這個事情真的很好辦 是不是用那個叫做
哎 對了 還配具秀就好了 但問題是這個是一個tab組件 他並不是一個
頁面 他不是一個頁面啊
好 所以呢 我們在這裏呢 注意啊 他不是頁面 不是帶那個英羣這個邊啊 修飾器的啊
所以呢 在這裏你是不是用不了那個玩配具秀這樣一些生命週期啊
用不了 那我們還是先
我們還是希望啊 有辦法呢 能更新到裏面的值 那我們啊稍微管一管完 是吧 換一個寫法
這裏我們的需求稍微變通一下啊 稍微變動一下就是什麼時候幹嘛呢
哎 切換到這個tab的時候 我就要你
重新獲取一下這個叫做cpu佔用率內存啊 存儲空間和這些
電量啊 這個名稱呢 應該就不用獲取了 因爲你手機是不是還是那一臺啊
對吧 但下面這些呢 應該要重新獲取 那我們怎麼讓他切換到這裏的時候
切換過來的時候給他獲取新的呢
頁面把它銷燬掉 再重新渲染出來 是吧
哎 這個也是一個算是可行的方案吧啊 這樣子其實也行啊
好 那當然有一些更加簡單的方案啊 更加簡單的方案
其實呢 在我們切換的時候呢 副頁面中是會有一個叫做
index的值啊 那我們進行了一個叫做綁定啊
這一邊啊 其實你切的時候呢 這個叫做綁定的index呢 這個值啊 它其實會自動發生那個
變化 對 它會自動發生那個變化啊 好 當然這裏呢 我們點擊的時候啊 有把它這個值給他
改了一下嘛 對吧 所以呢 在我們切的時候 這個值其實會自動發生那個變化啊 ok
好 那既然這個值呢 在副組件裏面啊 它能變化
那我們其實是不是監聽一下這個值有沒有變 是不是變成了我們下標的0
12是變成了二 我們就讓他重新獲取一下 是不是好了呀
對吧 其實我們可以通過這樣一種方式就獲取到下標 如果爲二的時候 我就讓你重新獲取一下
這些信息啊 ok 好
那這樣子呢 比我們消毀羊呢 再重新渲染啊 就從性能上啊會稍微好那麼一些啊
好 那我們接下來怎麼辦呢 怎麼監聽到這個值呢 ok
啊 如果要監聽到這個值呢 其實啊 我們可以通過那個叫做
哎 對了 and watch啊 and watch這樣一個修飾器去修飾啊
當你可以在副組件裏面去修飾啊 然後呢 把這個數據什麼的咔咔咔傳過去給他支柱件啊
當然我們這裏呢 還有一種就是我們把這個
就是什麼下標這個值啊 直接傳給支柱件 支柱件內部呢 再去做判斷啊也行啊
好 那麼在這裏呢 大家會發現有一個叫做克林大師 那麼他這一邊用到了一個修飾器呢 是這個叫做
provider provider好 用到provider的時候呢 哎 這可能有一些小夥伴已經忘記了啊 他其實主要用到的是那個叫做
哎 對了 非常之對啊 與後代組件進行那個
雙下同步啊 其實你副組件改變的時候呢 啊 中間不管你傳了多少集的這個支柱件
反正只有見那邊呢 是不是都能獲取到了
對吧啊 而且支柱件改完 是不是副組件也能更新了
對吧啊好 那我們這裏呢 其實啊 用到了啊 一個叫做provider 然後呢 支柱件這裏呢 是通過這個叫做
consume去進行一個接收 那麼直接啊 進行一個叫做
後代的一個傳值吧啊 不管你中間跨了多少集啊 反正都能傳回去 那這個值呢 其實啊 我們
直接監聽他是不是跟監聽副組件其實是
一樣的 對啊 所以呢 我們直接在這裏監聽他就好了啊 好
那接下來呢 我們在這裏呢 加一個叫做adwatch啊 ok 嗯 比如說這裏我起個名字吧
on tab changes
ok 好 當我們tabs發生改變的時候 我重新的拿一下這些信息
好 重新拿一下這個信息啊 然後呢 接下來呢 我們這裏呢 先做一個簡單的彈窗啊
好 先做一個簡單的彈窗 好 彈一下這個值 哎 看一下是否真的發生變化的時候呢 他會有這個打印
好的 那現在呢 當我切換啊
切換哎 這個我看一下ad change我編譯了嗎
好 重新安裝一下這個應用
ok 好的 那這裏呢 現在當我切換的時候呢 切換的時候呢 哎 在切換的時候 大家發現 哎 這一邊的值是不是好像有那個變化了呀
對吧啊 好 那能監聽到了 那當然我們要監聽的呢 是不是下表爲
二的對不對啊 那我們重新獲取一下ok 因爲這個啊 他監聽的呢 其實啊 跟副主件監聽的是同一個東西啊 所以呢 我們是
可以捕獲到啊 我什麼時候切換到了當前這個啊 我的這個主件啊 好 那我們現在呢 在這裏呢 直接就
問一下吧 當前的這個下標是否切換到了
二對吧啊 如果是二的話 那我們其實在這裏呢 是不是重新獲取一下
調試信息啊 磁盤信息和這個叫做
電量信息和這個叫做什麼設備信息
都是同一個啊 那就不用獲取了啊 好 那我們就會去一下這三個就好了啊 好 那接下來呢 我們再試一下
重新編譯一下
現在呢 當我們切換的時候呢 其實啊 這裏的信息就有變化了 比如說大家看到這個內存
內存呢 好像在切的時候也有一些些小小的變化 對不對
當你運行的多的話 那麼這裏呢 應該還會有一些變化啊 好 那像這個叫做什麼啊 電量啊什麼的時候啊 其實應該也差不多啊
好 我調一下吧 比如說調整41%
而我切換走 切換回來可以吧
對不對啊 那麼這裏呢是能發生變化啊
好 反正就是當我們從外面啊這個切過來的時候呢 其實啊這裏是可以
發生一些這個變化的啊
好的 那這裏呢 也用了一下這個叫做provider和這個consume啊 這邊叫做
與後代組件雙向同步的這樣一個裝飾器啊 然後呢 在我們tab裏面用起來了
那當然啊 除了用這個叫做與後代同步 如果說我們不用這個 是不是用那個叫做什麼
不用這個裝飾器 是不是用那個叫做proper 是不是負傳值 是不是按理來說也可以啊
對吧 當然 這一邊鴻蒙裏面啊 語法比較靈活啊 那我們這裏呢
都把不同的這個叫做裝飾器啊 給他用一下
當然建議呢 在用這個tab傳參的時候呢 建議還是用這個會更方便啊
因爲在我們tab裏面呢 朋友可能就是到時候再抽一成 是不是有可能
又簽到多一層的話 是不是我們的
什麼proper是不是需要先傳給孩子 是不是孩子才能再傳給孩子呀
對吧 好 那用到他的話 在做tab的時候呢 哎 就無視我中間有多少集啊 直接就能拿到
副組件的那個下標啊 ok 好 在這個場景下用他會比較合適吧
好 那麼現在呢 也給大家一點時間把這個叫做
呃 什麼
切換的時候的那個改變 然後呢 再重新獲取一下這個業務給他加一下 好 那麼現在呢 給一些時間大家大家也跟進一下吧
