Storage的封装

封装Storage的原因
Storage本身具有API,但是只是简单的key/value形式
Storage只存储字符串,需要转换成json对象
Storage只能一次性删除,不能单个清空

/**
 * Storage封装
 */
const STORAGE_KEY='mywen';
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.sessionStorage.setItem(STORAGE_KEY,JSON.stringify(val));  
        }
    },
    //获取某一个模块下面的属性  如user模块下面的userName的值
    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.sessionStorage.getItem(STORAGE_KEY)||'{}')
    },
		//清空某个属性
    clear(key,module_name){
        let val=this.getStorage();
        if(module_name){
            delete val[module_name][key];
        }else{
            delete val[key];
        }
        window.sessionStorage.setItem(STORAGE_KEY,JSON.stringify(val));
    }
}

这样封装的好处,即可以把内容储存在一个key下面
在一个key值中还可以存放多个模块,如user模块,order模块等
在这里插入图片描述
以下是对storage的实际操作
首先需要导入封装的storage的文件,再进行操作

import storage from './storage'

获取值

mounted() {
        console.log(storage.getItem('username', 'user'));
    }

在这里插入图片描述
这里就取到了user模块下面的username属性的值
存储值

storage.setItem('oder', '1');

在这里插入图片描述

storage.setItem('hobby', 'read book', 'user' );

在这里插入图片描述
清空值

storage.clear('oder');

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值