localStorage和sessionStorage的四个常用方法封装

const StorageUtil = {
  // 存储localStorage,如果提供类型则存放在sessionStorage中
  set: (key, value, type, datetime) => {
    const obj = {
      dataType: typeof value,
      value: value,
      type: type,
      datatime: datetime || new Date().getTime(),
    };
    if (type) window.sessionStorage.setItem(key, JSON.stringify(obj));
    else window.localStorage.setItem(key, JSON.stringify(obj));
  },
  get: (key, defaultValue) => {
    let value;
    let obj = window.localStorage.getItem(key) || {};
    if (isEmpty(obj)) {
      obj = window.sessionStorage.getItem(key);
    }
    if (isEmpty(obj)) {
      return defaultValue;
    } //默认为undefined
    obj = JSON.parse(obj);
    switch (obj.dataType) {
      case "string":
        value = obj.value;
        break;
      case "number":
        value = Number(obj.value);
        break;
      case "boolean":
        value = Boolean(obj.value);
        break;
      case "object":
        value = obj.value;
        break;
    }
    return value;
  },

  remove: key => {
    window.sessionStorage.removeItem(key);
    window.localStorage.removeItem(key);
  },
  clear: () => {
    window.sessionStorage.clear();
    window.localStorage.clear();
  },
};
export default StorageUtil;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值