OpenHarmony三方组件:MMKV
Handpc
发布于 2023-3-16 11:25
浏览
0收藏
介绍
一款小型键值对存储框架
- 支持存储 number、boolean、string、Set类型数据存储
- 支持继承组件中 SerializeBase.ets 的 class 类对象的序列化反序列化
- 支持存储数据备份
- 支持存储数据恢复
- 支持系统 API dataStorage 存储数据转移存到 mmkv 存储文件中
下载安装
npm install @ohos/MMKV --save
OpenHarmony npm 环境配置等更多内容,请参考参考安装教程 如何安装 OpenHarmony npm 包
使用
1、初始化:设置 mmkv 保存文件根目录(rootPath)和缓存目录(cachePath)
MMKV.initialize(rootPath, cachePath)
2、实例化 mmkv:
let mmkv = MMKV.getBackedUpMMKVWithID(mmapID, MMKV.SINGLE_PROCESS_MODE, "Tencent MMKV", backupRootDir);
3、存取键值对数据:
3.1 常用数据类型:boolean、number、string、Set
存数据示例:
mmkv.encodeBool('abool', false)
mmkv.encodeNumber('anumber', 3.0122)
mmkv.encodeString('astring', 'dsfsg')
let set1 = new Set<string>()
set1.add('ass1')
mmkv.encodeSet('aSet', set1)
取数据示例:
mmkv.decodeBool('abool')
mmkv.decodeNumber('astring')
mmkv.decodeString('aNumber')
mmkv.decodeSet('aSet')
3.2 类对象数据的序列化反序列化
类对象需要继承 SerializeBase类,需序列化属性需要标识注解@Serialize() 如:
class MyClass extends SerializeBase{
@Serialize()
public code: number = 0;
public title: string = 'titles';
@Serialize()
public description: string = 'descs';
}
存数据:
let myClass1 = new MyClass(1, 't1', 'desc1')
kv.encodeSerialize('serialize111', myClass1)
取数据:
let myClass2 = kv.decodeSerialize('serialize111', new MyClass())
4、系统轻量级存储数据转存为mmkv存储
- API8适用
mmkv.dataStorageToMMKV(path) //path:dataStorage存储路径 - API9及以上适用
mmkv.preferenceToMMKV(name) //name:preference文件名
5、设置加密密钥
mmkv.reCryptKey('Key_seq_1') //Key_seq_1:加密密钥
6、数据备份
备份otherDir路径mmapID的mmkv存储数据到backupRootDir
MMKV.backupOneToDirectory(mmapID, backupRootDir, otherDir)//mmapID:需要备份的mmapID;backupRootDir:备份到目标路径;otherDir:待备份所在路径
备份全部mmkv存储数据到backupRootDir
MMKV.backupAllToDirectory(backupRootDir) //backupRootDir:备份到目标路径
7、数据恢复
从srcDir恢复mmkv存储数据
MMKV.restoreOneMMKVFromDirectory(mmapID, srcDir, otherDir)//mmapID:需要恢复的mmapID;srcDir:目标路径;otherDir:待备份所在路径
恢复srcDir路径下的全部mmkv存储数据
MMKV.restoreAllFromDirectory(srcDir) //srcDir: 目标路径
8、清除所有存储数据
mmkv.clearAll()
兼容性
支持 OpenHarmony API 9 版本。
目录结构
|----MMMKV
| |---- entry # 示例代码文件夹
| |---- MMMKV # MMMKV库文件夹
| |---- index.ets # 对外接口
| |---- README.md # 安装使用方法
贡献代码
使用过程中发现任何问题都可以提 Issue 给我们,当然,我们也非常欢迎你给我们发 PR 。
开源协议
本项目基于 BSD 3-Clause License ,请自由地享受和参与开源。
分类
标签
MMKV-master.zip 234.73K 3次下载
赞
收藏
回复
相关推荐
不支持API9怎么解决