Storage的封装

1.Cookie,localStorage,sessionStorage三者的区别

Cookie和storage的区别

  • 存储大小:Cookie 4K,Storage 5M
  • 有效期: Cookie拥有有效期,Storage永久储存
  • Cookie会发送到服务器端,存储在内存中,Storage只存储在浏览器端
  • 路径:Cookie有路径限制,Storage只存储在域名下
  • API:Cookie没有特定的API,Srorage有对应的API

localStorage,sessionStorage区别

localStorage和sessionStorage都是window对象提供的全局属性,用途都是在浏览器中存储key/value对的数据。

从使用的角度来看,两者的唯一区别在于时效性。

sessionStorage在关闭窗口或标签页之后将会删除这些数据。

而localStorage则没有这样的特性,今天、下周、明年、一百年,甚至理论上的成千上万年后都能用,除非你手动去删除。

如果你想在浏览器窗口关闭后还保留数据,请使用localStorage。

如果你是想用于临时保存同一窗口(或标签页)的数据,请使用sessionStorage。

不多说上封装代码(封装的是sessionStorage)


/**
 * Storage封装
*/
const STORAGE_KEY = 'mail';
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));
       
        }
        
    },
    //获取值
    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));
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值