首页 鸿蒙 正文
  • 本文约880字,阅读需4分钟
  • 185
  • 0

PersistentStorage:持久化存储UI状态

温馨提示:本文最后更新于2024年9月29日 10:04,若内容或图片失效,请在下方留言或联系博主。

1. PersistentStorage允许的类型和值有:number, string, boolean, enum 等简单类型。 PersistentStorage:持久化存储UI状态

2. 可以被JSON.stringify()和JSON.parse()重构的对象。例如Date, Map, Set等内置类型则不支持,以及对象的属性方法不支持持久化。

( 划重点:自己定义的 class、interface 基本都是支持的 )

PersistentStorage.PersistProp('属性名', 值)

不支持嵌套对象(对象数组,对象的属性是对象等)。因为目前框架无法检测AppStorage中嵌套对象(包括数组)值的变化,所以无法写回到PersistentStorage中。

不支持 undefinednull

使用方法1:

// 初始化 PersistentStorage
PersistentStorage.persistProp<string>('info','凌零博客(llsix.com)')
// 通过 AppStorage 获取并修改数据
@StorageLink('info') info : string=''

使用方法2:

// 定义接口类型
interface FoodInfo{
  name:string
  price:number
}
// 初始化PersistentStorage
PersistentStorage.persistProp<FoodInfo[]>('foods',[
  {name:'西兰花炒蛋',price:10},
  {name:'猪脚饭',price:15},
  {name:'剁椒鱼头',price:14}, ])
// 通过 AppStorage 获取并修改数据
@StorageLink('foods') foods : FoodInfo[]=[]

查看持久化的存入地址:/data/app/el2/100/base/com.itheima.hm_guardian(项目名)/haps/entry/files/persistent_storage

3. 删除持久化数据:

// 删除登录信息持久化
PersistentStorage.deleteProp(属性名)
评论