鸿蒙 next 封装轻量级缓存工具 PreferencesUtil
import preferences from '@ohos.data.preferences';import dataPreferences from '@ohos.data.preferences';import { AppUtil } from './AppUtil';
type PreferencesValue = string
/** * preferences 轻量级缓存工具 */export class PreferencesUtil { private constructor() { }
private static defaultPreferenceName: string = "myPreferences"; private static preferences: preferences.Preferences;
/** * 获取Preferences实例 * @param name * @returns */ private static getPreferencesSync(): preferences.Preferences { if (!PreferencesUtil.preferences) { PreferencesUtil.preferences = dataPreferences.getPreferencesSync(AppUtil.getContext(), { name: PreferencesUtil.defaultPreferenceName }); } return PreferencesUtil.preferences; }
/** * 获取Preferences实例 * @param name * @returns */ private static async getPreferences(): Promise<preferences.Preferences> { if (!PreferencesUtil.preferences) { PreferencesUtil.preferences = await dataPreferences.getPreferences(AppUtil.getContext(), PreferencesUtil.defaultPreferenceName); } return PreferencesUtil.preferences; }
/** * 将数据缓存 * @param key * @param value */ static putSync(key: string, value: PreferencesValue) { let preferences = PreferencesUtil.getPreferencesSync(); //获取实例 preferences.putSync(key, value); preferences.flush(); //此处一定要flush,要不然不能永久序列化到本地 }
/** * 将数据缓存 * @param key * @param value */ static async put(key: string, value: PreferencesValue) { let preferences = await PreferencesUtil.getPreferences(); //获取实例 await preferences.put(key, value); await preferences.flush(); //此处一定要flush,要不然不能永久序列化到本地 }
/** * 获取缓存值 * @param key * @param defValue * @returns */ static getSync(key: string, defValue: PreferencesValue): PreferencesValue { let preferences = PreferencesUtil.getPreferencesSync(); //获取实例 return preferences.getSync(key, defValue) as PreferencesValue; }
/** * 获取缓存值 * @param key * @param defValue * @returns */ static async get(key: string, defValue: PreferencesValue): Promise<PreferencesValue> { let preferences = await PreferencesUtil.getPreferences(); //获取实例 return preferences.get(key, defValue) as Promise<PreferencesValue>; }
static getAllSync() { let preferences = PreferencesUtil.getPreferencesSync(); //获取实例 return preferences.getAllSync(); }
/** * 获取string类型的缓存值 * @param key * @returns */ static getStringSync(key: string): string { return PreferencesUtil.getSync(key, "") as string; }
/** * 获取string类型的缓存值 * @param key * @returns */ static async getString(key: string): Promise<string> { return (await PreferencesUtil.get(key, "")) as string; }
/** * 检查缓存的Preferences实例中是否包含名为给定Key的存储键值对 * @param key * @returns */ static hasSync(key: string) { return PreferencesUtil.getPreferencesSync().hasSync(key); }
/** * 检查缓存的Preferences实例中是否包含名为给定Key的存储键值对 * @param key * @returns */ static async has(key: string) { let preferences = await PreferencesUtil.getPreferences(); //获取实例 return await preferences.has(key); }
/** * 删除缓存值 * @param key * @returns */ static deleteSync(key: string) { let preferences = PreferencesUtil.getPreferencesSync(); //获取实例 preferences.deleteSync(key); preferences.flush() //此处一定要flush,要不然不能永久序列化到本地 }
复制代码
/**
* 删除缓存值
* @param key
* @returns
*/
static async delete(key: string) {
let preferences = await PreferencesUtil.getPreferences(); //获取实例
await preferences.delete(key);
return await preferences.flush() //此处一定要 flush,要不然不能永久序列化到本地
}
/**
* 清空缓存的 Preferences 实例中的所有数据
* @returns
*/
static clearSync() {
let preferences = PreferencesUtil.getPreferencesSync(); //获取实例
preferences.clearSync();
preferences.flush() //此处一定要 flush,要不然不能永久序列化到本地
}
/**
* 清除缓存的 Preferences 实例中的所有数据
* @returns
*/
static async clear() {
let preferences = await PreferencesUtil.getPreferences(); //获取实例
await preferences.clear();
return await preferences.flush() //此处一定要 flush,要不然不能永久序列化到本地
}
}
// export default new PreferencesUtil();
用法
1.存储数据
PreferencesUtil.putSync("mykey", "myvalue")
复制代码
2.获取数据
PreferencesUtil.getStringSync("mykey")
复制代码
评论