鸿蒙开发-数据状态管理

状态共享相关的装饰器(state、Prop、link,@provide、@consume 等),但是这些装饰器仅能在两个组件之间共享状态,如果开发者需要在一个页面内的所有组件中共享状态,或者是在多个页面之间共享状态,这些装饰器便不再适用了,此时我们需要的就是应用级状态管理功能

1.LocalStorage

LocalStorage用于存储页面级的状态数据,位于LocalStorage中的状态数据可以在一个页面内的所有组件中共享,其用法如下

第一步:创建LocalStorage实例,并初始化状态变量

let storage=new Localstorage({
"key":"value"
}

第二步:将LocalStorage实例绑定到页面的入口组件

@Entry(storage)
@Componet
struct Parent {
build(){
......
}
}

第三步:在页面内的组件访问Localstorage

ArkTs提供了两个装饰器用于访问LocalStorage,
分别是 @LocalstorageProp和@LocalstorageLink,前者可以和LocalStorage实现单向同步,后者可以和Localstorage实现双向同步,具体用法如下
在这里插入图片描述

PersistentStorage数据持久化

Localstorage和Appstorage都是将状态数据保存在内存中,应用一旦退出,数据就会被清理,
如果需要对数据进行持久化存储,就需要用到PersistentStorage,其用法如下
PersistentStorage可以将指定的AppStorage中的属性保存到磁盘中,并且Persistentstorage和AppStorage的该属性会自动建立双向同步,
开发者不能直接访问PersistentStorage中的属性,而只能通过AppStorage进行访问,
具体操作如下

在这里插入图片描述

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部