需求
当前开发的鸿蒙app增加了“关爱模式”的功能,效果是滑动文字大小进度条码,缩放所有界面的字体大小,设置好字体大小后自动保存本地,重新打开app显示上次保存的结果。
PersistentStorage
运行在UI线程中,仅用于存储简单的数据,比如:字体的大小,登录的用户名,租户账套,登录的组织等。
持久化属性值
//将字体大小18、用户名admin持久化
PersistentStorage.PersistProp('font_size',18)
PersistentStorage.PersistProp('userName','admin')
获取属性值
PersistentStorage对属性值的访问是通过AppStorage
实现的。
//访问字体属性font_size
font_size: number = AppStorage.Get('font_size')
//或者使用StorageLink()
@StorageLink('font_size') fontSize:number=19
//或者使用StorageProp()
@StorageProp('userName') userName:string='小黄'
PersistentStorage和AppStorage关系
PersistentStorage初始化属性值需要在AppStorage之前,前者是将属性值持久化到本地,PersistentStorage
和AppStorage
是通过相同的属性名建立联系,匹配规则:
图片来自鸿蒙官网
- PersistentStorage在调用方法
.PersistProp()
时,先检查是否存在持久化对象属性名aProp- 存在,获取持久化对象属性名aProp对应的属性值,然后使用
- 不存在,开始检查AppStorage应用全局缓存是否存在
- 开始检查AppStorage应用级全局缓存是否存在属性名aProp
- 存在,获取AppStorage记录的属性aProp名对应的属性值,然后回写到PersistentStorage中
- 不存在,使用AppStorage初始化一个aProp属性名,属性值为
.PersisProp()
方法设置的值
那么,可以理解AppStorage对属性名aProp
的操作,都会更新PersistentStorage中的值,达到建普通数据持久化到本地的目的。
当前文章价值8.4元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)
你可能感兴趣的文章
分类:harmony
标签:PersistentStorage
评论已关闭!