本地缓存封装类
class StorageUtil {
/**
* 设置存储值
* @param {string} key 键名
* @param {any} value 存储的值
* @param {boolean} [useSession=false] 是否使用sessionStorage,默认使用localStorage
*/
static setItem(key, value, useSession = false) {
const storage = useSession ? sessionStorage : localStorage;
storage.setItem(key, JSON.stringify(value));
}
/**
* 获取存储值
* @param {string} key 键名
* @param {any} [defaultValue=null] 默认值,如果键不存在则返回此值
* @param {boolean} [useSession=false] 是否使用sessionStorage,默认使用localStorage
* @returns {any} 存储的值或默认值
*/
static getItem(key, defaultValue = null, useSession = false) {
const storage = useSession ? sessionStorage : localStorage;
const value = storage.getItem(key);
if (value === null) return defaultValue;
try {
return JSON.parse(value);
} catch (error) {
console.error('Error parsing stored value:', error);
return defaultValue;
}
}
/**
* 删除指定键的存储值
* @param {string} key 键名
* @param {boolean} [useSession=false] 是否使用sessionStorage,默认使用localStorage
*/
static removeItem(key, useSession = false) {
const storage = useSession ? sessionStorage : localStorage;
storage.removeItem(key);
}
/**
* 清空所有存储
* @param {boolean} [useSession=false] 是否使用sessionStorage,默认使用localStorage
*/
static clear(useSession = false) {
const storage = useSession ? sessionStorage : localStorage;
storage.clear();
}
}
// 导出工具类
export default StorageUtil;
使用示例
// 设置存储值
StorageUtil.setItem('name', '张三');
// 获取存储值
const name = StorageUtil.getItem('name', '默认值');
console.log(name); // 张三
// 删除指定键的存储值
StorageUtil.removeItem('name');
// 清空所有存储
StorageUtil.clear();