localStorage
当我们需要使用localStorage存储数据时,他是永久存储的除非用户删除
这就使得我们在设置一些有时效性的数据存入localStorage时非常繁琐,因此封装了这个类用于实现此功能。
class useStorage {
/**
* 额外设置一条 `key__expires__: 时间戳` 的storage来判断过期时间
* @param {string} key
* @param {any} value
* @param {number} expired 过期时间 以分钟为单位
* @returns {any}
*/
setItem(key, value, expired) {
localStorage[key] = JSON.stringify(value);
if (expired) {
localStorage[`${key}__expires__`] = Date.now() + 1000 * 60 * expired
}
return value;
}
/**
* 获取storage时先获取`key__expires__`的值判断时间是否过期
* 过期则清空该两条storage 返回空
* @param {string} key
* @returns {any}
*/
getItem(key) {
let expired = localStorage[`${key}__expires__`] || Date.now + 1;
const now = Date.now();
if (now >= expired) {
localStorage.removeItem(key);
localStorage.removeItem(`${key}__expires__`);
return;
}
return localStorage[key] ? JSON.parse(localStorage[key]) : localStorage[key];
}
}
export const storage = new useStorage();
使用时导入storage
storage.setItem(key, value, min)
storage.getItem(key)