LocalStorage
页面级别的存储,每个@Entry(storage)持有一个实例,子组件可以直接调用,子组件不可以初始化。可以共享给其他page
- @LocalStorageProp 单向同步
- @LocalStorageLink 双向同步
可以在UIAbility中创建LocalStorage实例,并通过loadContent('uri',storage)的方式共享LoacalStorage,在page中,使用LocalStorage.getShared()获取该LocalStorage
APPStorage
应用全局级别的存储,跟进程绑定,在应用启动时被创建
- @StorageProp 单向同步
- @StorageLink 双向同步
PersistentStorage
持久化存储 单例对象 持久化存储APPStorage内的内容
UI对象不直接访问PersistentStorage的内容,UI对象通过访问APPStorage的内容来访问,对应的内容会自动同步到PersistentStorage
限制
- 支持string、number、bool、enum基础类型
- 支持jsonString
- 不支持对象及对象数组
- 不支持undefined和null
- 速度缓慢,避免持久化大量数据和高频变量
- 变量建议小于2kb
- 需要在UI实例化成功后调用(loadContent回调后)
使用
//初始化
PersistentStorage.persitentProp('key','value')
//读
AppStorage.get<string>('key')
@StorageLink('key') key:string = 'value'
框架流程
Environment
基于设备的环境变量查询,只读
属性
键 | 数据类型 | 描述 |
---|---|---|
accessibility | Enabledboolean | 获取无障碍屏幕读取是否启用。 |
colorMode | ColorMode | 色彩模型 类型:选项为ColorMode.LIGHT: 浅色,ColorMode.DARK: 深色。 |
fontScale | number | 字体大小比例,范围: [0.85, 1.45]。 |
fontWeightScale | number | 字体粗细程度,范围: [0.6, 1.6]。 |
layoutDirection | LayoutDirection | 布局方向类型:包括LayoutDirection.LTR: 从左到右,LayoutDirection.RTL: 从右到左。 |
languageCode | string | 当前系统语言值,取值必须为小写字母, 例如zh。 |
访问方式
//将环境变量设置到AppStorage里,此处的默认值写入,后续读出来不是这个值
Environment.envProp('languageCode', 'en');
//读取
const lang: SubscribedAbstractProperty<string> = AppStorage.prop('languageCode');
//读取字符串
lang.get()