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

一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

harmony OS NEXT-UIAbility內(nèi)狀態(tài)-LocalStorage詳細(xì)介紹

程奕紅 ? 來源:jf_34770892 ? 作者:jf_34770892 ? 2025-03-22 15:09 ? 次閱讀

# 鴻蒙Harmony-UIAbility內(nèi)狀態(tài)-LocalStorage詳細(xì)介紹

## 1.1 Localstorage的概念

> LocalStorage是頁面級的UI狀態(tài)存儲(chǔ),通過@Entry裝飾器接收的參數(shù)可以在頁面內(nèi)共享同一個(gè)LocalStorage實(shí)例,LocalStorage也可以在UIAbility內(nèi),頁面間共享狀態(tài)

## 1.2 LocalStorage單個(gè)頁面的使用方法

### 1.2.1 單個(gè)頁面的數(shù)據(jù)狀態(tài)存儲(chǔ)方法

1. 準(zhǔn)備一個(gè)共享數(shù)據(jù),鍵值對的方式存儲(chǔ)

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

### 1.2.2 案例演示

1. 準(zhǔn)備共享數(shù)據(jù)

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

```

2. 創(chuàng)建一個(gè)storage實(shí)例

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

3. 使用共享數(shù)據(jù)庫

```ts
1.@Entry(storage)
//表示我要從共享數(shù)據(jù)庫中取出uname字段 具體需要取出什么字段根據(jù)自己需求即可
@LocalStorageLink('uname')
//給取出的字段取一個(gè)別名,需要賦初始值。因?yàn)榭赡苣貌坏?br /> message: string = ''
```

4. 具體代碼實(shí)現(xiàn)

```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('改變子組件的狀態(tài)')
.onClick(()=>{
this.message = '西施'
})
}
}
}
```

### 1.2.3 效果展示

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

##

## 1.3 LocalStorage多個(gè)頁面共享UIAbility的使用方法

### 1.3.1 多個(gè)頁面的使用方法

1. 依舊是準(zhǔn)備共享數(shù)據(jù),放置在設(shè)置當(dāng)前應(yīng)用的加載頁面(UIAbility共享),只要是當(dāng)前windowstage內(nèi)的界面,都可以共享這份數(shù)據(jù)
2. 在設(shè)置應(yīng)用的加載頁面創(chuàng)建storage實(shí)例
3. 通過LocalStorage里面的方法getShared獲取數(shù)據(jù)

### 1.3.2 案例演示

1. 準(zhǔn)備數(shù)據(jù)

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

2. 創(chuàng)建storage實(shí)例,將storage傳遞給頁面

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

3. 接收數(shù)據(jù)

```ts
const storage = LocalStorage.getShared()
//其他步驟同單個(gè)頁面?zhèn)鬏攩?,這里就不再敘述
```

4. 完整代碼展示

* UIAbility內(nèi)代碼

```ts
onWindowStageCreate(windowStage: window.WindowStage): void {
const data:Record = {
'uname':'公孫離',
'age':'18',
}
const storage = new LocalStorage(data)
// //只要是當(dāng)前windowStage內(nèi)的界面,都可以共享這份數(shù)據(jù)
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('改變子組件的狀態(tài)')
.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%')
}
}
```


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 存儲(chǔ)
    +關(guān)注

    關(guān)注

    13

    文章

    4469

    瀏覽量

    86895
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2469

    瀏覽量

    43642
  • Harmony
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

    2852
收藏 人收藏

    評論

    相關(guān)推薦

    harmony OS NEXT-雙向數(shù)據(jù)綁定MVVM以及$$語法糖介紹

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

    harmony OS NEXT-Navagation基本用法

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

    KaihongOS操作系統(tǒng):UIAbility的生命周期

    和功能。 1. Create狀態(tài): onCreate():當(dāng)UIAbility實(shí)例創(chuàng)建完成時(shí)觸發(fā),系統(tǒng)會(huì)調(diào)用此回調(diào)。開發(fā)者可以在該回調(diào)中進(jìn)行頁面初始化操作,例如變量定義、資源加載等,用于后續(xù)的UI展示
    發(fā)表于 04-25 07:04

    HarmonyOS Next V2 @Local 和@Param

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

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

    #鴻蒙基本介紹及DevcoStudiop基本使用 1.認(rèn)識(shí)DevcoStudiop工作區(qū) 1.1認(rèn)識(shí)工作區(qū) 開發(fā)節(jié)奏: 通過左側(cè)目錄找到對應(yīng)的應(yīng)用文件,在編輯區(qū)進(jìn)行代碼編寫,在右側(cè)看預(yù)覽效果 快捷鍵
    的頭像 發(fā)表于 03-26 16:48 ?255次閱讀
    <b class='flag-5'>harmony</b> <b class='flag-5'>OS</b> <b class='flag-5'>NEXT</b>-基本<b class='flag-5'>介紹</b>及DevcoStudiop基本使用

    HarmonyOS Next 應(yīng)用元服務(wù)開發(fā)-應(yīng)用接續(xù)動(dòng)態(tài)配置遷移快速啟動(dòng)目標(biāo)應(yīng)用

    UIAbility { storage : LocalStorage = new LocalStorage(); onCreate(want: Want, launchParam
    發(fā)表于 12-31 09:58

    HarmonyOS NEXT應(yīng)用元服務(wù)開發(fā)Intents Kit(意圖框架服務(wù))事件推薦接入方案

    名稱 // 名稱應(yīng)當(dāng)遵循意圖框架規(guī)范,當(dāng)前僅支持預(yù)置垂域意圖,不允許自定義 // 應(yīng)用內(nèi)意圖名稱唯一,不允許出現(xiàn)相同的名稱定義 \"intentName\": \"
    發(fā)表于 11-14 15:26

    鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型啟動(dòng)Stage模型UIAbility

    本文介紹FA模型的三種應(yīng)用組件如何啟動(dòng)Stage模型的UIAbility組件。
    的頭像 發(fā)表于 06-25 16:00 ?568次閱讀
    鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型啟動(dòng)Stage模型<b class='flag-5'>UIAbility</b>

    鴻蒙Ability Kit(程序框架服務(wù))【UIAbility組件啟動(dòng)模式】

    UIAbility的啟動(dòng)模式是指UIAbility實(shí)例在啟動(dòng)時(shí)的不同呈現(xiàn)狀態(tài)。針對不同的業(yè)務(wù)場景,系統(tǒng)提供了三種啟動(dòng)模式:
    的頭像 發(fā)表于 06-06 11:05 ?1138次閱讀
    鴻蒙Ability Kit(程序框架服務(wù))【<b class='flag-5'>UIAbility</b>組件啟動(dòng)模式】

    鴻蒙Ability Kit(程序框架服務(wù))【UIAbility組件基本用法】

    UIAbility組件的基本用法包括:指定UIAbility的啟動(dòng)頁面以及獲取UIAbility的上下文[UIAbilityContext]。
    的頭像 發(fā)表于 06-06 11:02 ?765次閱讀
    鴻蒙Ability Kit(程序框架服務(wù))【<b class='flag-5'>UIAbility</b>組件基本用法】

    鴻蒙Ability Kit(程序框架服務(wù))【UIAbility內(nèi)UIAbility間頁面的跳轉(zhuǎn)】

    基于Stage模型下的UIAbility開發(fā),實(shí)現(xiàn)UIAbility內(nèi)UIAbility間頁面的跳轉(zhuǎn)。
    的頭像 發(fā)表于 06-03 14:13 ?1018次閱讀
    鴻蒙Ability Kit(程序框架服務(wù))【<b class='flag-5'>UIAbility</b><b class='flag-5'>內(nèi)</b>和<b class='flag-5'>UIAbility</b>間頁面的跳轉(zhuǎn)】

    鴻蒙Ability Kit(程序框架服務(wù))【UIAbility組件間交互(設(shè)備內(nèi))】

    UIAbility是系統(tǒng)調(diào)度的最小單元。在設(shè)備內(nèi)的功能模塊之間跳轉(zhuǎn)時(shí),會(huì)涉及到啟動(dòng)特定的UIAbility,該UIAbility可以是應(yīng)用內(nèi)
    的頭像 發(fā)表于 06-03 09:53 ?925次閱讀
    鴻蒙Ability Kit(程序框架服務(wù))【<b class='flag-5'>UIAbility</b>組件間交互(設(shè)備<b class='flag-5'>內(nèi)</b>)】

    鴻蒙Ability Kit(程序框架服務(wù))【UIAbility組件生命周期】

    當(dāng)用戶打開、切換和返回到對應(yīng)應(yīng)用時(shí),應(yīng)用中的UIAbility實(shí)例會(huì)在其生命周期的不同狀態(tài)之間轉(zhuǎn)換。UIAbility類提供了一系列回調(diào),通過這些回調(diào)可以知道當(dāng)前UIAbility實(shí)例
    的頭像 發(fā)表于 05-30 21:51 ?1933次閱讀
    鴻蒙Ability Kit(程序框架服務(wù))【<b class='flag-5'>UIAbility</b>組件生命周期】

    鴻蒙Ability Kit(程序框架服務(wù))【UIAbility組件概述】

    UIAbility組件是一種包含UI的應(yīng)用組件,主要用于和用戶交互。
    的頭像 發(fā)表于 05-30 20:17 ?639次閱讀
    鴻蒙Ability Kit(程序框架服務(wù))【<b class='flag-5'>UIAbility</b>組件概述】

    HarmonyOS開發(fā)案例:【UIAbility內(nèi)UIAbility間頁面的跳轉(zhuǎn)】

    基于Stage模型下的UIAbility開發(fā),實(shí)現(xiàn)UIAbility內(nèi)UIAbility間頁面的跳轉(zhuǎn)。
    的頭像 發(fā)表于 05-09 15:06 ?1984次閱讀
    HarmonyOS開發(fā)案例:【<b class='flag-5'>UIAbility</b><b class='flag-5'>內(nèi)</b>和<b class='flag-5'>UIAbility</b>間頁面的跳轉(zhuǎn)】