在Vue中封装Storage

  • 在src下新建一个storage文件夹,在文件夹下新建一个index.js文件,作为数据存储工具箱

index.js:

const STORAGE_KEY = 'mall';
export default {
    // key: mall      value: {"user":{"userName":"yian","age":22,"sex":1}}
    // 存储值  module_name为模块对象,即user
    setItem(key, value, module_name) {
        if(module_name){
            // 获取user对象
            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) {
            // 返回一个Object对象
            let val = this.getItem(module_name);
            if (val) return val[key];
        }
        return this.getStorage()[key];
    },
    // 获取整个数据
    getStorage() {
        return JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || '{}')
    },
    // 清空某一个值
    clearItem(key,module_name) {
        let val=this.getStorage();
        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));
    }
}

在这里插入图片描述

  • 存入与user同级的值

App.vue:

<template>
  <div id="app">
    <router-view></router-view>
  </div>
</template>

<script>
import storage from './storage/index'
export default {
  name:"App",
  mounted(){
    storage.setItem('yian',1);
  }
}
</script>

在这里插入图片描述

  • 给user下添加一个属性

App.vue:

storage.setItem("mi",{yian:2},'user');

在这里插入图片描述

  • 删除与user同级的值

App.vue:

storage.clearItem('yian');

在这里插入图片描述

  • 删除user下的值

App.vue:

storage.clearItem('mi','user');

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值