老师,为什么我封装的storage的setItem方法出现了获取不到storage的问题?
来源:4-9 Storage封装

慕仙6370059
2022-09-14
debug截图:
index.js代码
const STORAGE_KEY='mall';
export default{
// 封装storage存储(sessionStorage)
//特点:不会永久存储(区别于localstorage),随浏览器关闭而销毁。
name:'storage',
setItem(key,value,model_name){
//设置对象中字段值
if(model_name){
let val=this.getItem(model_name);
val[key]=value;
this.setItem(model_name,val);
}else{
//设置值方法(存储storage值)
let val=this.getStorage();
val[key]=value;
window.sessionStorage.setItem(STORAGE_KEY,JSON.stringify(val));
}
},
getItem(key,model_name){
//获取对象中字段值,key为对象的字段名,model_name:对象
if(model_name){
let val=this.getItem(model_name);
if(val){
return val[key];
}
}
// 直接获取对象,key为对象名
return this.getStorage[key];
},
getStorage(){
//获取整个storage
return JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || '{}');//将字符串转成json,当为空时,设置为json空对象
},
clear(key,model_name){
//删除storage方法
let val=this.getStorage();
if(model_name){
delete val[model_name][key];
}else{
delete val[key];
}
this.setItem(val);
}
}
app.vue代码截图
写回答
1回答
-
河畔一角
2022-09-14
看起来没啥问题,可以加一下课程群,下午我看一下代码。
012022-09-14
相似问题