HarmonyOS NEXT
3.应用状态
1、对比总结
|
特性 |
LocalStorage |
AppStorage |
PersistentStorage |
|
作用范围 |
页面级或UIAbility内 |
应用全局 |
应用全局 + 持久化 |
|
存储位置 |
内存 |
内存 |
磁盘 |
|
生命周期 |
页面销毁时清除 |
应用退出时清除 |
长期保留(除非删除/卸载) |
|
数据同步机制 |
单向/双向组件绑定 |
单向/双向全局绑定 |
与AppStorage 绑定并持久化 |
|
典型应用场景 |
页面内状态共享 |
全局状态管理 |
需要长期保存的关键数据 |
![]()
(一般我们用StorageLink全局注册)LocalStorage 是页面级的UI状态存储,通过 @Entry 装饰器接收
用法
创建LocalStorage 实例 :const storage = new LocalStorage( { key: value } )
单向 @LocalStorageProp('user') 组件内可变
双向 @LocalStorageLink('user') 全局可变
// self是要共享的
const self: Record<string, ResourceStr> = {
'age': '18',
'nickName': '一介码农',
'gender': '男',
'avtar': $r('app.media.startIcon')
}
// 1.定义共享的数据
const localUserInfo = new LocalStorage(self)
//2.页面使用
@Entry(localUserInfo)
@Component
struct LocalStorageCase01 {
@LocalStorageLink('nickName') nickName: string = ''
build(){
Text(this.nickName)
}
}
2.StorageLink 全局数据
※@StorageLink 把数据给到全局 (方便,简单,容易,easy😄O(∩_∩)O)
接收和发送代码是一样的

3.持久化存储,调用-PersistentStorage(和APPStorage一样,但是能持久化存储)
PersistentStorage全局持久化,APPStorage全局,前者就是多了个数据持久化都是全局
存储:PersistentStorage.PersistProp("user", '123')
调用:@StorageLink ("user") user : string = ' '
注意:不能和APPStore重名,他们都存内存
支持:number,string,boolean,enum 等简单类型
如果:要支持对象类型,可以转换成json字符转
持久化变量最好小于2kb的数据
4.状态持久化-preferences首选项(储存最大16MB,储存大的用它)
4.网络管理(需要模拟器)
1.访问网络需要网络权限(比如网图😍)
{
"module" : {
"requestPermissions":[
{
"name" : "ohos.permission.INTERNET"
}
]
}
}
1114

被折叠的 条评论
为什么被折叠?



