1. 创建一个utils文件夹,在utils文件夹下再创建一个Storage.js文件,所有本项目的缓存都存在这里。
const STORAGE_KEY = 'storeStorage';
export default {
setItem(key, value, module_name) {
if(module_name){
let val=this.getItem(module_name);
val[key] = value;
this.setItem(module_name,val);
}else{
let val = this.getStorage();
val[key] = value;
window.localStorage.setItem(STORAGE_KEY, JSON.stringify(val));
}
},
getItem(key, module_name) {
if (module_name) {
let val = this.getItem(module_name);
if (val) return val[key];
}
return this.getStorage()[key];
},
getStorage() {
return JSON.parse(window.localStorage.getItem(STORAGE_KEY) || '{}')
},
clearItem(key,module_name) {
let val=this.getStorage();
if(module_name){
if(!val[module_name]) return;
delete val[module_name][key];
}else{
delete val[key];
}
window.localStorage.setItem(STORAGE_KEY, JSON.stringify(val));
},
seSetItem(key, value, module_name) {
if(module_name){
let val = this.getItem(module_name);
val[key] = value;
this.seSetItem(module_name,val);
}else{
let val = this.seGetStorage();
val[key] = value;
window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(val));
}
},
seGetStorage() {
return JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || '{}')
},
seGetItme(key, module_name) {
if (module_name) {
let val = this.seGetItme(module_name);
if (val) return val[key];
}
return this.seGetStorage()[key];
},
seClearItem(key,module_name) {
let val=this.seGetStorage();
if(module_name){
if(!val[module_name]) return;
delete val[module_name][key];
}else{
delete val[key];
}
window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(val));
},
}
2. 挂载到全局
import storage from '@/utils/Storage';
Vue.prototype.$storage = storage;
3. 如何使用
1. 存值
this.$storage.setItem("eid", row.eid);
2. 取值
this.$storage.getItem("eid");
3. 删除
this.$storage.clearItem('eid');