当前位置: 首页> 文旅> 文化 > 微信双开苹果版app_青岛免费建站_学生没钱怎么开网店_广州seo快速排名

微信双开苹果版app_青岛免费建站_学生没钱怎么开网店_广州seo快速排名

时间:2025/7/10 7:51:08来源:https://blog.csdn.net/Yihong1833100198/article/details/145622504 浏览次数:0次
微信双开苹果版app_青岛免费建站_学生没钱怎么开网店_广州seo快速排名

鸿蒙Harmony-应用状态-AppStorage详细介绍

1.1 概述

AppStorage是在应用启动的时候会被创建的单例。它的目的是为了提供应用状态数据的中心存储,这些状态数据在应用级别都是可访问的。AppStorage将在应用运行过程保留其属性。属性通过唯一的键字符串值访问。

AppStorage可以和UI组件同步,且可以在应用业务逻辑中被访问。

AppStorage支持应用的主线程内多个UIAbility实例间的状态共享。

AppStorage中的属性可以被双向同步,数据可以是存在于本地或远程设备上,并具有不同的功能,比如数据持久化(详见PersistentStorage)。这些数据是通过业务逻辑中实现,与UI解耦,如果希望这些数据在UI中使用,需要用到@StorageProp和@StorageLink。

1.2 使用方法

AppStorage 是应用全局的UI状态存储,是和应用的进程绑定的,由UI框架在应用程序启动时创建,为应用程序UI状态属性提供中央存储。-注意它也是内存数据,不会写入磁盘,主要分为下面几个步骤

1. 2.1存入数据

    AppStorage.setOrCreate('userInfo',userInfo)
//userinfo是自己提前拿到的数据 可以自己模拟一下

1.2.2 读取数据

  1. 使用修饰符的方式拿数据
  @StorageLink('userInfo')userInfo: Record<string, string> = {}
  1. 使用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 效果展示

img

1.4.5 总结

AppStorage到底使用API还是修饰符

  1. 取出的结果是否有UI更新的需求 - UI修饰符
  2. 如果不需要进行UI展示,适合用API方法存取
关键字:微信双开苹果版app_青岛免费建站_学生没钱怎么开网店_广州seo快速排名

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: