vue项目封装本地存储

1. 创建一个utils文件夹,在utils文件夹下再创建一个Storage.js文件,所有本项目的缓存都存在这里。

const STORAGE_KEY = 'storeStorage'; // 所有本项目的缓存都存在这里
export default {
  // key: mall 
  // 存储值  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.localStorage.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.localStorage.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.localStorage.setItem(STORAGE_KEY, JSON.stringify(val));
  },
  // sessionStorage存储
  seSetItem(key, value, module_name) {
    if(module_name){
      // 获取user对象
      let val = this.getItem(module_name);
      val[key] = value;
      this.seSetItem(module_name,val);
    }else{
      let val = this.seGetStorage();
      val[key] = value;
      window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(val));
    }
  },
  // 获取整个数据
  seGetStorage() {
    return JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || '{}')
  },
  seGetItme(key, module_name) {
    if (module_name) {
      // 返回一个Object对象
      let val = this.seGetItme(module_name);
      if (val) return val[key];
    }
    return this.seGetStorage()[key];
  },
  // 清空某一个值
  seClearItem(key,module_name) {
    let val=this.seGetStorage();
    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));
  },
}

2. 挂载到全局

import storage from '@/utils/Storage';
Vue.prototype.$storage = storage;

3. 如何使用

1. 存值
this.$storage.setItem("eid", row.eid);
2. 取值
this.$storage.getItem("eid");
3. 删除
this.$storage.clearItem('eid');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在Vue前端中,本地存储的值类型可以是任意类型的数据,包括字符串、数字、布尔值、对象、数组等。当我们使用localStorage或sessionStorage进行本地存储时,可以使用JSON.stringify()方法将数据转换为字符串进行存储,然后使用JSON.parse()方法将字符串转换为原始数据类型进行读取。这样可以确保存储和读取的数据类型一致。所以,Vue前端本地存储的值类型可以是任意类型的数据。 #### 引用[.reference_title] - *1* [vue实现本地存储](https://blog.csdn.net/SqlloveSyn/article/details/127607718)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [vue动态监听本地存储的值](https://blog.csdn.net/scarlett1017/article/details/125126925)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [vue2 本地存储封装](https://blog.csdn.net/weixin_51614564/article/details/126794466)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值