前言
前面介绍了管理组件拥有的状态,我们认识了如下几种组件状态管理。
- @State装饰器:组件内状态
- @Prop装饰器:父子单向同步
- @Link装饰器:父子双向同步
- @Provide装饰器和@Consume装饰器:与后代组件双向同步
- @Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化
以上组件的状态装饰器仅能在页面内,即一个组件树上共享状态变量。如果开发者要实现应用级的,或者多个页面的状态数据共享,就需要用到应用级别的状态管理的概念。ArkTS根据不同特性,提供了多种应用状态管理的能力,今天来讲讲应用拥有的状态管理。
四种应用状态
应用拥有的状态管理,大致分为以下4种状态管理。
- LocalStorage:页面级UI状态存储
- AppStorage:应用全局的UI状态存储
- PersistentStorage:持久化存储UI状态
- Environment:设备环境查询
四种应用状态简单概述
- LocalStorage:页面级UI状态存储,通常用于UIAbility内、页面间的状态共享。
- AppStorage:特殊的单例LocalStorage对象,由UI框架在应用程序启动时创建,为应用程序UI状态属性提供中央存储;
- PersistentStorage:持久化存储UI状态,通常和AppStorage配合使用,选择AppStorage存储的数据写入磁盘,以确保这些属性在应用程序重新启动时的值与应用程序关闭时的值相同;
- Environment:应用程序运行的设备的环境参数,环境参数会同步到AppStorage中,可以和AppStorage搭配使用。
小结
- 组件的状态装饰器仅能在页面内,即一个组件树上共享状态变量。如果开发者要实现应用级的,或者多个页面的状态数据共享,就需要用到应用级别的状态管理.
- 应用状态管理主要体现在:LocalStorage:页面级UI状态存储;AppStorage:应用全局的UI状态存储;PersistentStorage:持久化存储UI状态; Environment:设备环境查询。后续会一一讲解。