老师,为什么我封装的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

看起来没啥问题,可以加一下课程群,下午我看一下代码。

0
1
慕仙6370059
老师,我getItem方法里面的getStorage少了个括号,不小心,所以获取不到值
2022-09-14
共1条回复

Vue全家桶实战 从零独立开发企业级电商系统

Vue全家桶构建企业级电商系统,真实服务端数据对接,高实用性

2560 学习 · 1307 问题

查看课程