Vue项目实战:Storage封装

Storage封装

封装Storage的原因:

  • Storage本身有API,但是只是简单的key/value,不能存储更复杂的形式。
  • Storage只存储字符串,需要人工转换成json对象
  • Storage只能一次性清空,不能单个清空

封装方法

  • 希望的session storage数据格式是:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5rZtTWOj-1584877870274)(C:\Users\lin\AppData\Roaming\Typora\typora-user-images\1584789505772.png)]
  • 在源代码src文件夹下新建storage文件夹,storage里新建index.js文件,index.js中的内容:
const STORAGE_KEY = 'mall';
export default{
    getStorge() {
        return JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || '{}');
    },
    getItem(key, module_name) {
        if (module_name) {
            let val = this.getItem(module_name);
            if (val) {
                return val[key]
            }
        }
        return this.getStorge()[key]
    },
    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.getStorge();
            val[key] = value;
            window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(val))
        }

    },
    clear(key, module_name) {
        let val = this.getStorge();
        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))
    }
}
发布了60 篇原创文章 · 获赞 121 · 访问量 7527

猜你喜欢

转载自blog.csdn.net/weixin_46124214/article/details/105033894