第二二课:HarmonyOS Next本地存储与缓存策略开发指南
一、LocalStorage:页面级状态共享
1. 核心特性与使用场景
功能定位:LocalStorage用于实现UIAbility实例内多个页面间的数据共享,支持组件树内状态同步 装饰器机制: @LocalStorageProp:实现单向绑定,仅从LocalStorage同步数据至组件 @LocalStorageLink:实现双向绑定,组件与LocalStorage数据实时互相同步
// 创建LocalStorage实例
let storage = new LocalStorage();
storage.setOrCreate('theme', 'light');@Entry(storage)
@Component
struct HomePage {
@LocalStorageLink('theme') theme: string; // 双向绑定build() {
Column() {
Text(this.theme)
.onClick(() => { this.theme = 'dark'; })
}
}
}
2. 开发注意事项
数据类型限制:LocalStorage的键值必须为字符串类型,值支持除Function外的常用数据类型 跨页面共享:通过LocalStorage.GetShared()实现不同页面访问同一实例
二、SessionStorage:会话级临时存储
1. 核心特性与生命周期
功能定位:存储临时会话数据(如用户登录凭证),生命周期与应用程序会话绑定 数据特性: 会话结束时自动清除数据 支持键值对存储,数据未加密
// 存储会话数据
SessionStorage.setOrCreate('sessionId', '123456');
// 获取数据
let sessionId = SessionStorage.get('sessionId');
2. 典型应用场景
用户登录态临时保存 页面跳转参数传递
三、数据缓存策略优化
1. 多级缓存架构
层级 技术方案 适用场景 内存缓存 LRU策略 高频访问小数据(如配置项) 本地存储 Preferences/SQLite 结构化业务数据 持久化存储 PersistentStorage 关键配置持久化
2. 性能优化策略
缓存淘汰机制:
// LRU缓存示例
class LRUCache {
private cache = new Map<string, any>();
private maxSize = 100;get(key: string) {
if (this.cache.has(key)) {
const value = this.cache.get(key);
this.cache.delete(key);
this.cache.set(key, value);
return value;
}
return null;
}
}
缓存失效控制: 时间戳验证:为缓存数据设置TTL(Time To Live) 版本号校验:数据版本变更时主动刷新缓存
3. 缓存监控与管理
查询缓存大小:
import { storageStatistics } from '@ohos.file.storageStatistics';
let stats = storageStatistics.getCurrentBundleStats();
console.log('缓存大小:', stats.cacheSize);
清理缓存:
// 删除指定缓存文件
let cacheDir = globalThis.context.cacheDir;
fileio.unlinkSync(${cacheDir}/temp_data
);
四、总结
存储方案选择: 页面级共享选LocalStorage 会话级临时数据用SessionStorage 缓存策略核心: 内存+本地+持久化三级架构提升性能 LRU淘汰与TTL机制保障数据有效性 安全建议:敏感数据需结合@ohos.security加密存储
- 0回答
- 0粉丝
- 0关注
- 第二二课:HarmonyOS Next本地存储与缓存策略开发指南
- 第二课:HarmonyOS Next样式与主题开发指南
- 第二六课:HarmonyOS Next国际化与本地化开发实战指南
- 第二六课:HarmonyOS Next国际化与本地化开发实战指南
- 第二三课:HarmonyOS Next文件操作开发指南:读写与管理实战
- 第二三课:HarmonyOS Next文件操作开发指南:读写与管理实战
- 第十二课:HarmonyOS Next多设备适配与响应式开发终极指南
- 14 HarmonyOS NEXT UVList组件开发指南(一)
- 15 HarmonyOS NEXT UVList组件开发指南(二)
- 16 HarmonyOS NEXT UVList组件开发指南(三)
- 17 HarmonyOS NEXT UVList组件开发指南(四)
- 18 HarmonyOS NEXT UVList组件开发指南(五)
- 第二四课:HarmonyOS Next多线程与并发开发实战指南
- 第二四课:HarmonyOS Next多线程与并发开发实战指南
- 第五课:HarmonyOS Next导航与路由开发指南