第六章HarmonyOS NEXT 鸿蒙储存LocalStorage AppStorage PersistentStorage(适用API12以上版本)

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"
      }
    ]
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值