LocalStorage是頁面級的UI狀態存儲,通過@Entry裝飾器接收的參數可以在頁面內共享同一個LocalStorage實例,LocalStorage也可以在UIAbility內,頁面間共享狀態 ## 1.2 LocalStorage單個頁面的使用方法 ### 1.2.1 單個頁面的數據狀態存儲方法 1. 準備一個共享數據,鍵值對的方式存儲 2. 創建LocalStorage實例:const storage = new LocalStorage({key:value}) 3. 單向 @LocalStorageProp(‘user’)組件內可變 4. 雙向 #LocalStorageLink(‘" />

国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

harmony OS NEXT-UIAbility內狀態-LocalStorage詳細介紹

程奕紅 ? 來源:jf_34770892 ? 作者:jf_34770892 ? 2025-03-22 15:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

# 鴻蒙Harmony-UIAbility內狀態-LocalStorage詳細介紹

## 1.1 Localstorage的概念

> LocalStorage是頁面級的UI狀態存儲,通過@Entry裝飾器接收的參數可以在頁面內共享同一個LocalStorage實例,LocalStorage也可以在UIAbility內,頁面間共享狀態

## 1.2 LocalStorage單個頁面的使用方法

### 1.2.1 單個頁面的數據狀態存儲方法

1. 準備一個共享數據,鍵值對的方式存儲

2. 創建LocalStorage實例:const storage = new LocalStorage({key:value})
3. 單向 @LocalStorageProp(‘user’)組件內可變
4. 雙向 #LocalStorageLink(‘user’)全局均可變

### 1.2.2 案例演示

1. 準備共享數據

```ts
const data:Record = {
'uname':'公孫離',
'age':'18'
}

```

2. 創建一個storage實例

```ts
const storage = new LocalStorage(data)
```

3. 使用共享數據庫

```ts
1.@Entry(storage)
//表示我要從共享數據庫中取出uname字段 具體需要取出什么字段根據自己需求即可
@LocalStorageLink('uname')
//給取出的字段取一個別名,需要賦初始值。因為可能拿不到
message: string = ''
```

4. 具體代碼實現

```ts
const data:Record = {
'uname':'公孫離',
'age':'18'
}
const storage = new LocalStorage(data)
@Entry(storage)
@Component
struct TestLocalStorage03 {
@LocalStorageLink('uname')
message:string = ''

build() {
Column() {
Text(this.message)
Button('改變父組件的信息')
.onClick(()=>{
this.message = '孫尚香'
})
child001()
}
.height('100%')
.width('100%')
}
}

@Component
struct child001 {
@LocalStorageLink('uname')
message:string = ''
build() {
Column(){
Text('-------------------------------------------')

Text(this.message)
Button('改變子組件的狀態')
.onClick(()=>{
this.message = '西施'
})
}
}
}
```

### 1.2.3 效果展示

![img](https://i-blog.csdnimg.cn/img_convert/537a479a23bb8f24ff1538c9aaeb76e0.gif)

##

## 1.3 LocalStorage多個頁面共享UIAbility的使用方法

### 1.3.1 多個頁面的使用方法

1. 依舊是準備共享數據,放置在設置當前應用的加載頁面(UIAbility共享),只要是當前windowstage內的界面,都可以共享這份數據
2. 在設置應用的加載頁面創建storage實例
3. 通過LocalStorage里面的方法getShared獲取數據

### 1.3.2 案例演示

1. 準備數據

```ts
const data:Record = {
'uname':'公孫離',
'age':'18',
}
const storage = new LocalStorage(data)
```

2. 創建storage實例,將storage傳遞給頁面

```ts
1.const storage = new LocalStorage(data)
2. windowStage.loadContent('pages/10/TestLocalStorage03',storage);
```

3. 接收數據

```ts
const storage = LocalStorage.getShared()
//其他步驟同單個頁面傳輸嗎,這里就不再敘述
```

4. 完整代碼展示

* UIAbility內代碼

```ts
onWindowStageCreate(windowStage: window.WindowStage): void {
const data:Record = {
'uname':'公孫離',
'age':'18',
}
const storage = new LocalStorage(data)
// //只要是當前windowStage內的界面,都可以共享這份數據
windowStage.loadContent('pages/10/TestLocalStorage03',storage);
}
```

* 頁面1

```ts
// const data:Record = {
import { router } from '@kit.ArkUI'

// 'uname':'公孫離',
// 'age':'18'
// }
const storage = LocalStorage.getShared()

@Entry(storage)
@Component
struct TestLocalStorage03 {
@LocalStorageLink('uname')
message: string = ''

build() {
Column() {
Text(this.message)
Button('改變父組件的信息')
.onClick(() => {
this.message = '孫尚香'
})
child001()

}
.height('100%')
.width('100%')
}
}

@Component
struct child001 {
@LocalStorageLink('uname')
message: string = ''

build() {
Column() {
Text('-------------------------------------------')

Text(this.message)
Button('改變子組件的狀態')
.onClick(() => {
this.message = '西施'
})
Button('切換頁面')
.onClick(() => {
router.pushUrl({
url: 'pages/10/TextLocalStorage2'
})
})
}
}
}
```

* 頁面2

```ts
import { router } from '@kit.ArkUI'

const storage = LocalStorage.getShared()
@Entry(storage)
@Component
struct TextLocalStorage2 {
@LocalStorageLink('uname')
message: string = ''

build() {
Column() {
Text(this.message)
Button('改變信息')
.onClick(()=>{
this.message = '劉備'
})

Button('back')
.onClick(()=>{
router.back()
})
}
.height('100%')
.width('100%')
}
}
```


審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲
    +關注

    關注

    13

    文章

    4798

    瀏覽量

    90083
  • 鴻蒙
    +關注

    關注

    60

    文章

    2964

    瀏覽量

    45936
  • Harmony
    +關注

    關注

    0

    文章

    108

    瀏覽量

    3558
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【HarmonyOS 5】鴻蒙中的UIAbility詳解(二)

    【HarmonyOS 5】鴻蒙中的UIAbility詳解(二) ##鴻蒙開發能力 ##HarmonyOS SDK應用服務##鴻蒙金融類應用 (金融理財# 一、前言 今天我們繼續深入講解
    的頭像 發表于 07-11 18:17 ?931次閱讀
    【HarmonyOS 5】鴻蒙中的<b class='flag-5'>UIAbility</b>詳解(二)

    【HarmonyOS 5】鴻蒙中的UIAbility詳解(三)

    【HarmonyOS 5】鴻蒙中的UIAbility詳解(三) ##鴻蒙開發能力 ##HarmonyOS SDK應用服務##鴻蒙金融類應用 (金融理財# 一、前言 本文是鴻蒙中的UIAbility
    的頭像 發表于 06-14 22:32 ?759次閱讀

    鴻蒙Next實現瀑布流布局

    的應用窗口寬度并注冊回調函數監聽窗口尺寸變化。將窗口尺寸的長度單位由 px 換算為 vp 后,即可基于前文中介紹的規則得到當前斷點值,此時可以使用狀態變量記錄當前的斷點值方便后續
    發表于 06-10 14:17

    PageAbility切換為UIAbility的方法

    UIAbility。 將FA應用中PageAbility的代碼遷移到新創建的UIAbility中。FA應用中PageAbility和Stage應用中的UIAbility生命周期基本一致,兩者的生命周期
    發表于 06-05 06:07

    UIAbility組件生命周期介紹

    UIAbility組件生命周期 概述 當用戶打開、切換和返回到對應應用時,應用中的UIAbility實例會在其生命周期的不同狀態之間轉換。UIAbility類提供了一系列回調,通過
    發表于 05-16 08:28

    UIAbility組件基本用法說明

    UIAbilityContext可以獲取UIAbility的相關配置信息,如包代碼路徑、Bundle名稱、Ability名稱和應用程序需要的環境狀態等屬性信息,以及可以獲取操作UIAbility實例的方法(如
    發表于 05-16 06:32

    UIAbility組件間交互(設備)說明

    UIAbility,也可以是其他應用的UIAbility(例如啟動三方支付UIAbility)。 本文將從如下場景分別介紹設備
    發表于 05-16 06:12

    UIAbility組件啟動模式:實例在啟動時的不同呈現狀態

    UIAbility組件啟動模式 UIAbility的啟動模式是指UIAbility實例在啟動時的不同呈現狀態。針對不同的業務場景,系統提供了三種啟動模式: singleton(單實
    發表于 05-16 06:10

    UIAbility組件與UI的數據同步介紹

    數據的情況;而LocalStorage則是一個局部的狀態管理器,適用于單個UIAbility內部使用的狀態數據。通過這兩種方案,開發者可以更加靈活地控制應用
    發表于 05-16 06:10

    harmony OS NEXT-雙向數據綁定MVVM以及$$語法糖介紹

    # 鴻蒙Harmony-雙向數據綁定MVVM以及$$語法糖介紹 ## 1.1 雙向數據綁定概念 在鴻蒙(HarmonyOS)應用開發中,雙向數據改變(或雙向數據綁定)是一種讓數據·模型和UI組件之間
    的頭像 發表于 04-29 16:52 ?1263次閱讀

    harmony OS NEXT-Navagation基本用法

    # Navagation基本用法 > Navigation組件是路由導航的根視圖容器,一般作為Page頁面的根容器使用,其內部默認包含了標題欄,內容欄和公工具欄,其中內容區默認首頁顯示導航內容(Navigation的子組件)或非首頁顯示(NavDestination的子組件),首頁和非首頁通過路由進行切換 * 使用Navigation跳轉的組件不需要再使用Entry來修飾,普通組件即可 * Navigation是一個導航組件,API9和API11的使用官方推薦方式各不相同 ## 1. Navagation API9的用法-(Navigation-NavRouter-(其他組件+NavD
    的頭像 發表于 04-27 17:39 ?941次閱讀

    harmony OS NEXT-評論功能小demo

    # 評論頁面小demo ## 效果展示 ![img](https://i-blog.csdnimg.cn/img_convert/f574e0b18325ee466938a3cb70530209.gif) ## 1.拆解組件,分層搭建 我們將整個評論頁面拆解為三個組件,分別是頭部導航,評論項,回復三個部分,然后統一在index界面導入 ![image-20250304150652225](https://i-blog.csdnimg.cn/img_convert/2e234f0fe986014368d8d7f138577e6a.png) ## 2.頭部導航界面搭建 ![image-20250304151026576](https://i-blog.csdnimg.cn/img_convert/c876aa04a505a3c3203c03984a2e1504.png) ```ts @Preview @Component struct HmNavBar { ?// 屬性:是可以被傳
    的頭像 發表于 04-27 17:38 ?599次閱讀

    KaihongOS操作系統:UIAbility的生命周期

    和功能。 1. Create狀態: onCreate():當UIAbility實例創建完成時觸發,系統會調用此回調。開發者可以在該回調中進行頁面初始化操作,例如變量定義、資源加載等,用于后續的UI展示
    發表于 04-25 07:04

    HarmonyOS Next V2 @Local 和@Param

    HarmonyOS Next V2 @Local 和@Param @Local 背景 @Local 是 harmony 應用開發中的 v2 版本中 對標**@State**的狀態管理修飾器,它解決了
    的頭像 發表于 04-02 18:27 ?1056次閱讀
    HarmonyOS <b class='flag-5'>Next</b> V2 @Local 和@Param

    harmony OS NEXT-基本介紹及DevcoStudiop基本使用

    #鴻蒙基本介紹及DevcoStudiop基本使用 1.認識DevcoStudiop工作區 1.1認識工作區 開發節奏: 通過左側目錄找到對應的應用文件,在編輯區進行代碼編寫,在右側看預覽效果 快捷鍵
    的頭像 發表于 03-26 16:48 ?710次閱讀
    <b class='flag-5'>harmony</b> <b class='flag-5'>OS</b> <b class='flag-5'>NEXT</b>-基本<b class='flag-5'>介紹</b>及DevcoStudiop基本使用