首页 > 其他分享 >vue项目中封装localStorage和sessionStorage

vue项目中封装localStorage和sessionStorage

时间:2023-05-11 21:48:52浏览次数:47  
标签:缓存 Session sessionStorage window vue localStorage key

1. 为什么需要封装localStorage和sessionStorage?
因为封装localStorage和sessionStorage可以提高程序的维护性、可重用性和扩展性,同时也可以使代码更为简单、易懂。

2. 以下是一个简单的代码封装示例

可以新建一个utils目录文件,在该文件下新建storage.js文件进行封装

// 封装localhost和Session

// 本地储存
export const Local = {
  // 设置永久缓存
  set (key, val) {
    window.localStorage.setItem(key, JSON.stringify(val));
  },
  // 获取永久缓存
  get (key) {
    let json = window.localStorage.getItem(key);
    return JSON.parse(json);
  },
  // 移除永久缓存
  remove (key) {
    window.localStorage.removeItem(key);
  },
  // 移除全部永久缓存
  clear () {
    window.localStorage.clear();
  },
};

// 临时储存
export const Session = {
  // 设置临时缓存
  set (key, val) {
    window.sessionStorage.setItem(key, JSON.stringify(val));
  },
  // 获取临时缓存
  get (key) {
    let json = window.sessionStorage.getItem(key);
    return JSON.parse(json);
  },
  // 移除临时缓存
  remove (key) {
    window.sessionStorage.removeItem(key);
  },
  // 移除全部临时缓存
  clear () {
    window.sessionStorage.clear();
  },
}

export default {
  Local,
  Session
}

3.在vue组件中使用

按需引入

import { Session } from '@/utils/storage'

页面使用

 // 设置临时缓存
Session.set("key", value)
 // 获取临时缓存
Session.get("key")
 // 移除临时缓存
Session.remove("key")
 // 移除全部临时缓存
Session.clear()

标签:缓存,Session,sessionStorage,window,vue,localStorage,key
From: https://www.cnblogs.com/Amyel/p/17392305.html

相关文章

  • vue3 setup 父页面调用子组件及子组件调用父页面方法的DEMO
    父页面调用子组件中方法父页面<template><div><!--第四步:页面使用子组件,并添加ref属性,注意ref属性不能和子组件重名--><role-cardref="roleRef"></role-card></div></template><scriptlang="ts"setup>import{ref......
  • 若依vue导入流程
     下载链接若依官方找配置后端1.下载解压vue源码2.配置maven,如有跳过3.导入idea4.修改数据库配置文件5.部署redis和mysql6.导入数据库7.启动后端springboot测试http://localhost:8080/captchaImage配置前端1.安装nodejs2.在idea的终端执行cdruoyi-uinpminstall--registry=h......
  • Vue3 + Vite4.3 + Element-Plus + TypeScript 从0到1搭建企业级后台管理系统(前后端开
    vue3-element-admin是基于vue-element-admin升级的Vue3+ElementPlus版本的后台管理前端解决方案,技术栈为Vue3+Vite4+TypeScript+ElementPlus+Pinia+VueRouter等当前主流框架。相较于其他管理前端框架,vue3-element-admin的优势在于一有一无有配套后端、无......
  • 创建vue3项目 @符号提示
    1、新建jsconfig.json如何配置以下内容即可提示{"compilerOptions":{"baseUrl":"./","paths":{"@/*":["src/*"]}}}2、实际上面配置只是联想提示作用,需要在vue.config.js或vite.config......
  • https://pengchenggang.github.io/vuejsdev-com-github 备份发布
    https://pengchenggang.github.io/vuejsdev-com-github备份发布现在还没有解决的就是开clash,代码提交不上去,只能关了提,但是关了提交,也得赶运气。提交代码体验很差~......
  • Vue3 01 -- 初识Vue3
    Vue3组合式API 在vue2的版本里,数据和函数是分开维护的,并且调用时还要用到mount或者Create。但是在vue3的版本里,经过setup的语法糖,能够实现集中式维护,一个功能写的代码能放在一起,且代码量更少了。 使用create-vue创建项目在工作目录下,用命令行运行npminitvue@latest......
  • vue+cesium实现卫星在轨绕行动画
    1、初始化蓝星首先要实现这个功能,一定要开启时间轴timeline:true,//是否显示时间线控件this.viewer=newCesium.Viewer('cesiumContainer',{    baseLayerPicker:false, //影像切换    animation:false, //是否显示动画控件......
  • vue2+van2 实现带搜索的级联选择组件
    级联选择组件新建组件-子项CasadeSelect/CasadeSelectItem.vue<template><divclass="container-list-item"><divclass="icon"><divclass="checkbox"><svg-iconv-if="curChecked"ic......
  • vue3 Type 'never[]' is missing the following properties from type 'Ref ': value,
      加个value就可以了基本在vue3里面类似的错都可以用这种方法......
  • 用vue+elementui写了一个图书管理系统
    用vue+elementui写了一个图书管理系统转载自公号:java大师目前是指一个纯前端的展示,后端还在开发中,前端接口是通过json-server模拟的用到的技术栈1、vue.js2、elementui3、json-server4、axios5、vue-router动态路由目录结构1、components文件夹是封装的通用的Mytabl......