# preferences **Repository Path**: harmony-free/preferences ## Basic Information - **Project Name**: preferences - **Description**: Harmony OS preferences 鸿蒙首选项存储 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-06-30 - **Last Updated**: 2025-07-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # preferences #### 介绍 [English](README.en.md) 这是鸿蒙版本preferences首选项存储封装,get、put、delete、clear四种操作的封装 #### 软件架构 这是鸿蒙版本基于preferences数据存储,preferences是由Key-Value键值型进行数据存储的,通过Key进行数据存储和获取。 #### 安装教程 `ohpm install @free/preferences` #### 使用说明 调用方式,推荐优先使用带使用Flush方法 ``` new PreferencesUtils().get(""); new PreferencesUtils().getForKeys("","",""); new PreferencesUtils().getAll(); new PreferencesUtils().getMap(); new PreferencesUtils().put("",0); new PreferencesUtils().putFlush("",0); new PreferencesUtils().putMap(new Map); new PreferencesUtils().putMapFlush(new Map); new PreferencesUtils().delete(""); new PreferencesUtils().deleteFlush(""); new PreferencesUtils().deleteForKeys("","",""); new PreferencesUtils().deleteForKeysFlush("","",""); new PreferencesUtils().clear() new PreferencesUtils().clearFlush() ``` #### 插件明细 hello 各位同学,大家好! 今天我们来讲讲关于鸿蒙里常用的preferences首选项数据存储。在开发过程中,通常会使用一些持久化数据存储,一些用户数据以及常用固定数据都可以使用preferences进行存储 一、简单了解一下preferences数据存储,preferences是由Key-Value键值型进行数据存储的,通过Key进行数据存储和获取。 1、preferences创建数据存储实例化 ```arkts preferences = preferences.getPreferencesSync(getContext(), { name: 'base' }); ``` 2、preferences基本方法,def为默认值,value为数据值 ```arkts // 储存数据 preferences.put(key, value) preferences.putSync(key, value) // 获取数据 preferences.get(key, value) preferences.getSync(key, def) // 获取所有数据 preferences.getAll(); preferences.getAllSync(); // 删除数据 preferences.delete(key) preferences.deleteSync(key) //清空数据 preferences.clear(); preferences.clearSync(); // 同步到preferences库中 preferences.flush(); ``` 3、对存储数据进行操作后需要进行flush同步,所以可以再进行put、delete、clear之后直接进行flush ```arkts // 新增或更新并同步 putFlush(key: string, value: preferences.ValueType) { preferences.putSync(key, value) preferences.flush() } // 删除并同步 deleteFlush(key: string) { if (this.has(key)) { preferences.deleteSync(key) preferences.flush() } } // 清除并同步 clearFlush() { preferences.clearSync() preferences.flush() } ``` 4、在这些基础上做多值存储和多值获取 ```arkts // 获取多条数据 getForKeys(...keys: string[]): Map { let map: Map = new Map() keys.forEach((key) => { let value = preferences.getSync(key) map.set(key, value) }) return map } // 存储多条数据 putMap(map: Map) { map.forEach((v, k) => { preferences.putSync(k, v) }) } // 存储多条数据并同步 putMapFlush(map: Map) { map.forEach((v, k) => { preferences.putSync(k, v) }) preferences.flush() } // 删除多条数据 deleteForKeys(...keys: string[]){ keys.forEach((key) => { this.delete(key) }) } // 删除多条数据并同步 deleteForKeysFlush(...keys: string[]){ keys.forEach((key) => { this.delete(key) }) preferences.flush() } ``` 注意:完整代码我已提交到[鸿蒙三方库](https://ohpm.openharmony.cn/#/cn/home)中,使用一下命令安装 ``` ohpm install @free/preferences ``` 调用方式,推荐优先使用带使用Flush方法 ```arkts new PreferencesUtils().get(""); new PreferencesUtils().getForKeys("","",""); new PreferencesUtils().getAll(); new PreferencesUtils().getMap(); new PreferencesUtils().put("",0); new PreferencesUtils().putFlush("",0); new PreferencesUtils().putMap(new Map); new PreferencesUtils().putMapFlush(new Map); new PreferencesUtils().delete(""); new PreferencesUtils().deleteFlush(""); new PreferencesUtils().deleteForKeys("","",""); new PreferencesUtils().deleteForKeysFlush("","",""); new PreferencesUtils().clear() new PreferencesUtils().clearFlush() ``` 喜欢本篇内容的话给个小爱心! #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)