harmony OS NEXT-应用状态-AppStorage详细介绍
2025-03-22 15:43:39
134次阅读
0个评论
鸿蒙Harmony-应用状态-AppStorage详细介绍
1.1 概述
AppStorage是在应用启动的时候会被创建的单例。它的目的是为了提供应用状态数据的中心存储,这些状态数据在应用级别都是可访问的。AppStorage将在应用运行过程保留其属性。属性通过唯一的键字符串值访问。
AppStorage可以和UI组件同步,且可以在应用业务逻辑中被访问。
AppStorage支持应用的主线程内多个UIAbility实例间的状态共享。
AppStorage中的属性可以被双向同步,数据可以是存在于本地或远程设备上,并具有不同的功能,比如数据持久化(详见PersistentStorage)。这些数据是通过业务逻辑中实现,与UI解耦,如果希望这些数据在UI中使用,需要用到[@StorageProp](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-appstorage-0000001774279622#ZH-CN_TOPIC_0000001774279622__storageprop)和[@StorageLink](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-appstorage-0000001774279622#ZH-CN_TOPIC_0000001774279622__storagelink)。
1.2 使用方法
AppStorage
是应用全局的UI状态存储,是和应用的进程绑定的,由UI框架在应用程序启动时创建,为应用程序UI状态属性提供中央存储。-注意它也是内存数据,不会写入磁盘,主要分为下面几个步骤
1. 2.1存入数据
AppStorage.setOrCreate('userInfo',userInfo)
//userinfo是自己提前拿到的数据 可以自己模拟一下
1.2.2 读取数据
- 使用修饰符的方式拿数据
@StorageLink('userInfo')
userInfo: Record<string, string> = {}
- 使用API的方式拿取数据
@State
userInfo:Record<string,string>= {}
aboutToAppear(): void {
this.userInfo = AppStorage.get('userInfo')!
}
1.2.3 完整代码
import { router } from '@kit.ArkUI'
@Entry
@Component
struct TestAppStorage01 {
login(){
//存
const userInfo:Record<string,string> = {
'uname':'公孙离',
'nickname':'小阿狸'
}
AppStorage.setOrCreate('userInfo',userInfo)
router.pushUrl({
url:'pages/10/TestAppStorage02'
})
}
build() {
Column({space:12}) {
Row(){
Text('账号:')
TextInput()
.layoutWeight(1)
}.width('100%')
.padding(20)
Row(){
Text('密码:')
TextInput()
.layoutWeight(1)
}.width('100%')
.padding(20)
Row(){
Button('登录')
.onClick(()=>{
this.login()
})
.layoutWeight(1)
}.width('100%')
.padding(20)
}
.height('100%')
.width('100%')
}
}
@Entry
@Component
struct TestAppStorage02 {
@StorageLink('userInfo')
userInfo: Record<string, string> = {}
build() {
Column() {
Text('大神名称' + this.userInfo.uname)
Text('江湖人称:' + this.userInfo.nickname)
}
.height('100%')
.width('100%')
}
}
1.2.4 效果展示
1.4.5 总结
AppStorage到底使用API还是修饰符
- 取出的结果是否有UI更新的需求 - UI修饰符
- 如果不需要进行UI展示,适合用API方法存取
00
- 0回答
- 1粉丝
- 0关注
相关话题
- harmony OS NEXT-UIAbility内状态-LocalStorage详细介绍
- harmony OS NEXT-基本介绍及DevcoStudiop基本使用
- harmony OS NEXT-双向数据绑定MVVM以及$$语法糖介绍
- harmony OS NEXT-启动页开发
- harmony OS NEXT-基本组件结构
- harmony OS NEXT-常用组件及其导航
- harmony OS NEXT-评论功能小demo
- harmony OS NEXT-音频录制与播放模块
- harmony OS NEXT-设备开发中的核心概念
- harmony OS NEXT–状态管理器–@State详解
- harmony OS NEXT-ArkTS组件结构和状态管理
- harmony OS NEXT-通过用户首选项实现数据持久化
- Harmony OS Next应用开发之HTTP请求
- Harmony OS Next应用“丁斗口算”开发记录(1)
- Harmony OS Next应用“丁斗口算”开发记录(2)