class Cache {
|
/**
|
* 设置本地缓存
|
* @param key 键名
|
* @param value 值(会自动序列化为 JSON)
|
*/
|
set<T = any>(key: string, value: T): void {
|
try {
|
const json = JSON.stringify(value)
|
localStorage.setItem(key, json)
|
} catch (e) {
|
console.error(`缓存写入失败(${key}):`, e)
|
}
|
}
|
|
/**
|
* 获取本地缓存
|
* @param key 键名
|
* @returns 反序列化后的值,失败返回 null
|
*/
|
get<T = any>(key: string): T | null {
|
try {
|
const json = localStorage.getItem(key)
|
return json ? JSON.parse(json) as T : null
|
} catch (e) {
|
console.error(`缓存读取失败(${key}):`, e)
|
return null
|
}
|
}
|
|
/**
|
* 删除指定缓存项
|
* @param key 键名
|
*/
|
delete(key: string): void {
|
try {
|
localStorage.removeItem(key)
|
} catch (e) {
|
console.error(`缓存删除失败(${key}):`, e)
|
}
|
}
|
|
/**
|
* 判断某项缓存是否存在
|
* @param key 键名
|
* @returns 是否存在
|
*/
|
has(key: string): boolean {
|
try {
|
return localStorage.getItem(key) !== null
|
} catch (e) {
|
console.error(`缓存判断失败(${key}):`, e)
|
return false
|
}
|
}
|
|
/**
|
* 清空所有本地缓存
|
*/
|
clear(): void {
|
try {
|
localStorage.clear()
|
} catch (e) {
|
console.error('缓存清空失败:', e)
|
}
|
}
|
}
|
|
export default new Cache()
|