【鸿蒙实战开发】记录下LocalStorage、AppStorage、PersistentStorage的持久化存储相关

前言

记录下最近适配鸿蒙用到状态存储的一些理解。

理解

虽然官方文档中将管理应用存储分为了LocalStorage(页面级)、AppStorage(应用级)、PersistentStorage(持久化存储)三种类型。
使用下来,感觉其实只要关注LocalStorage(页面级)、AppStorage(应用级)两种类型就好了,而PersistentStorage与其说是存储管理,不如说是存储标记,具体的看下问吧。

LocalStorage页面级存储

在鸿蒙中LocalStorage从概念和理解是都完全不同于 Web的 localStorage。他相当于设置了一个只作用于某个页面的存储区。
别看官方文档写了一大堆,实际上用法无外乎以下:

●声明:new LocalStorage(object) ,创建一个LocalStorage,可以设置初始内容。
●绑定到页面:在 页面的组件 上使用 @Entry(storage)进行绑定。绑定后,该页面组件、以及子组件都可使用该存储中的数据了。
●使用:

○@LocalStorageProps:单向绑定,也就是页面改变了值的内容,不会影响到 localStore 中存储数据
○@LocalStorageLink:双向绑定,也就是页面改变了值的内容,会一并影响到 localStore 中存储数据
○PS: 值得一提的是,鸿蒙中@Props 都是单向绑定,@Link 都是双向绑定。

  //初始化
 let para: Record<string, number> = { 'PropA': 47 };
 let storage: LocalStorage = new LocalStorage(para);
 
 //添加创建值
 storage.setOrCreate('PropB', new PropB(50));

 //绑定
 @Entry(storage)
 @Component
struct CompA {

   //使用
   @LocalStorageProps('PropA') childLinkNumber: number = 1;
   @LocalStorageLink('PropB')
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值