utli.ts
import {LocalCacheType} from "./type/type";
function LocalCache(type?:string){
if(type === 'localStorage' || type === undefined){
return new UseLocalStorage()
}else {
return new UseSessionStorage()
}
}
class UseLocalStorage implements LocalCacheType{
setCache(key:string,value:any){
window.localStorage.setItem(key,JSON.stringify(value))
}
getCache(key: string) {
const value=window.localStorage.getItem(key)
if(value){
return JSON.parse(value)
}
}
deleteCathe(key: string) {
window.localStorage.removeItem(key)
}
clearCache() {
window.localStorage.clear()
}
}
class UseSessionStorage implements LocalCacheType{
setCache(key:string,value:any){
window.sessionStorage.setItem(key,JSON.stringify(value))
}
getCache(key: string) {
const value=window.sessionStorage.getItem(key)
if(value){
return JSON.parse(value)
}
}
deleteCathe(key: string) {
window.sessionStorage.removeItem(key)
}
clearCache() {
window.sessionStorage.clear()
}
}
export default LocalCache
type.ts
export interface LocalCacheType{
setCache(key:string,value:any):void
getCache(key:string):void
deleteCathe(key:string):void
clearCache(key:string):void
}