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

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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

## 1.1 Localstorage的概念

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

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

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

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

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

### 1.2.2 案例演示

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

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

```

2. 創(chuàng)建一個storage實例

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

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

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

4. 具體代碼實現(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多個頁面共享UIAbility的使用方法

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

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

### 1.3.2 案例演示

1. 準備數(shù)據(jù)

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

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

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

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

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

4. 完整代碼展示

* UIAbility內(nèi)代碼

```ts
onWindowStageCreate(windowStage: window.WindowStage): void {
const data:Record = {
'uname':'公孫離',
'age':'18',
}
const storage = new LocalStorage(data)
// //只要是當前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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲
    +關注

    關注

    13

    文章

    4533

    瀏覽量

    87464
  • 鴻蒙
    +關注

    關注

    60

    文章

    2620

    瀏覽量

    44060
  • Harmony
    +關注

    關注

    0

    文章

    108

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

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

    鴻蒙Next實現(xiàn)瀑布流布局

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

    PageAbility切換為UIAbility的方法

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

    UIAbility組件生命周期介紹

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

    UIAbility組件基本用法說明

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

    UIAbility組件間交互(設備內(nèi))說明

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

    UIAbility組件啟動模式:實例在啟動時的不同呈現(xiàn)狀態(tài)

    UIAbility組件啟動模式 UIAbility的啟動模式是指UIAbility實例在啟動時的不同呈現(xiàn)狀態(tài)。針對不同的業(yè)務場景,系統(tǒng)提供了三種啟動模式: singleton(單實
    發(fā)表于 05-16 06:10

    UIAbility組件與UI的數(shù)據(jù)同步介紹

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

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

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

    harmony OS NEXT-Navagation基本用法

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

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

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

    HarmonyOS Next V2 @Local 和@Param

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

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

    #鴻蒙基本介紹及DevcoStudiop基本使用 1.認識DevcoStudiop工作區(qū) 1.1認識工作區(qū) 開發(fā)節(jié)奏: 通過左側(cè)目錄找到對應的應用文件,在編輯區(qū)進行代碼編寫,在右側(cè)看預覽效果 快捷鍵
    的頭像 發(fā)表于 03-26 16:48 ?417次閱讀
    <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 應用元服務開發(fā)-應用接續(xù)動態(tài)配置遷移快速啟動目標應用

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