概述
PersistentStorage将选定的AppStorage属性保留在设备磁盘上。应用程序通过API,以决定哪些AppStorage属性应借助PersistentStorage持久化。UI和业务逻辑不直接访问PersistentStorage中的属性,所有属性访问都是对AppStorage的访问,AppStorage中的更改会自动同步到PersistentStorage。
PersistentStorage和AppStorage中的属性建立双向同步。应用开发通常通过AppStorage访问PersistentStorage,另外还有一些接口可以用于管理持久化属性,但是业务逻辑始终是通过AppStorage获取和设置属性的。
限制条件
持久化数据是一个相对缓慢的操作,应用程序应避免以下情况:
● 持久化大型数据集。
● 持久化经常变化的变量。
PersistentStorage的持久化变量最好是小于2kb的数据,不要大量的数据持久化,因为PersistentStorage写入磁盘的操作是同步的,大量的数据本地化读写会同步在UI线程中执行,影响UI渲染性能。如果开发者需要存储大量的数据,建议使用数据库api。
PersistentStorage和UIContext相关联,需要在[UIContext]明确的时候才可以调用,可以通过在[runScopedTask]里明确上下文。如果没有在UIContext明确的地方调用,将导致无法持久化数据。
使用场景
从AppStorage中访问PersistentStorage初始化的属性
1.初始化PersistentStorage:</