vue-05 sessionStorage封装

vue2登录存储案例:sessionStorage会话存储+localStorage本地存储 vue2,登录案例,登陆后数据存在本地 阅读详情

目录

1.Cookie、localStorage、sessionStorage

1.1三者区别

1.2为什么要封装Storage

2.封装

2.1sessionStorage

2.1.1封装成下面形式

2.1.2代码

 


1.Cookie、localStorage、sessionStorage

1.1三者区别

存储大小: Cookie4k、localStorage5M、sessionStorage据说大小限制为2M左右

有效期:Cookie拥有有效期、localStroage永久存储,sessionStorage会话技术浏览器关闭就没了

存储位置:Cookie会发送到服务器存到内存,Stroage存储到浏览器端,sessionStorage 存到内存

路径:cookie有路径限制、storage存到域名下

API:cookieapi模糊,storage有对应的api

1.2为什么要封装Storage

storage本身有api,但只是简单形式的key/vaue形式

storage只存储字符串,需要手工转成json对象

storage只能一次性清空,不能单个清空

2.封装

2.1sessionStorage

2.1.1封装成下面形式

{"user":{"userName":"bushuangli","age":18}}

2.1.2代码

/**
 * storage 封装 全局数据key
 * @type {string}
 */
const STORAGE_KEY= "mail";
export default {
    /**
     * 存值
     * @param key 存储的对象名
     * @param value 值
     * @param module_name 如果传这个值就是存到那个模块
     */
    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));
        }
    },
    /**
     * 获取某个模块下面的属性
     * @param key 只传key就是取mail下的对象
     * @param module_name 传moduleName
     * @returns {*}
     */
    getItem(key,module_name){
        if (module_name){
            let val = this.getItem(module_name);
            if(val) return val[key];
        }
        return this.getStorage()[key];
    },
    /**
     * 获取所有值
     * @returns {any}
     */
    getStorage() {
        return JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || '{}');
    },
    /**
     * 删除模块的key,删除的模块
     * @param key
     * @param module_name
     */
    clear(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));
    }
}

 

Vuex状态持久化实战:vuex-persist精准控制localStorage Vuex是Vue 2中实现集中式状态管理的核心方案,其内存态特性导致页面刷新后状态丢失,需借助本地存储实现持久化。vuex-persist作为成熟插件,通过声明式配置(如paths、modules、filter)将持久化逻辑重新纳入Vuex响应式体系,避免手写localStorage带来的分散维护、序列化异常与性能阻塞等问题。它依托localStorage提供轻量可靠的状态落地能力,技术价值在于可预测性、可调试性与工程可控性,广泛应用于电商筛选、多步骤表单、中后台用户偏好等场景。本文聚焦Vuex与vuex- 阅读详情

相关推荐

详解Vue中localstorage和sessionstorage的使用

1. 项目使用中暴露出来的几个问题 大家到处直接使用localstorage[‘aaa’]=’这是一段示例字符串’这些原生语法实现,这样耦合度太高了,假如有一天我们需要换实现方式,或者对存储大小做一些控制,那么需要修改的代码就会很多 项目很大,那么大家起的key的名字难免会重复,而且这样也会造成全局污染 因为localstorage的使用不规范,所以造成了存储空间的浪费和不够用 2. 解决办法 封装storage的使用方法,统一处理 规范storage的key值的命名规则 规范storage的使用规范 2.1. 封装统一的方法 封装成方法可以降低耦合度,可以方便切换实现方式,可以控制

【Vue】vuex存储和本地存储(localstorage、sessionstorage)的区别

1. sessionStorage    sessionStorage 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。   用法:      储存: 1. 点(.)运算符                          sessionStorage.lastname = 'JSAnntQ';            2. 方括号([ ])运算符     ...

Mr_EvanChen的Blog 5183

PHM算法与智能分析技术

PHM概述

柳杰的博客 1万+

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

localStorage和sessionStorage的四个常用方法,set,get,remove,clear

weixin_71854821的博客 331

微信内置浏览器抓包全攻略:从ADB配置到Chrome调试(附常见问题解决)

本文提供了一套完整的微信内置浏览器抓包与调试解决方案。从ADB工具的深度配置与稳定性连接开始,详细讲解了如何开启X5内核调试开关,并利用Chrome DevTools建立远程连接。文章重点剖析了Network面板进行网络请求抓取、性能分析和问题定位的实战技巧,并附带了设备连接失败、无网络请求等常见问题的排查指南,帮助开发者高效解决微信H5页面调试难题。

gitlab7runner的博客 541

vuecil3+版本下,兼容ie等不支持es6的低版本浏览器

*综上,完成兼容性涉及到的配置的文件有,对应在页面中查看代码,就不单独附代码了:main.js。

yhr0322的博客 831

vue项目中封装localStorage和sessionStorage

因为封装localStorage和sessionStorage可以提高程序的维护性、可重用性和扩展性,同时也可以使代码更为简单、易懂。可以新建一个utils目录文件,在该文件下新建storage.js文件进行封装。

weixin_45131680的博客 323

告别瞎猜!用通达信L2资金流向函数,手把手教你识别主力动向(附实战公式)

本文详细解析通达信L2资金流向函数,手把手教你构建主力动向监控系统。通过分档数据解析、委买委卖攻防解读及实战公式应用,帮助投资者精准识别主力建仓与虚假拉升信号,提升股票交易决策效率。

weixin_26908317的博客 2072

web本地存储的使用和在vue中的封装(localStorage,sessionStorage )

目录 什么是本地存储? localStorage和sessionStorage的区别 localStorage和sessionStorage的使用方法(使用方法是一样的) 开始封装本地存储(以sessionStorage为例) 什么是本地存储? 1.通过本地存储(Local Storage),web 应用程序能够在用户浏览器中对数据进行本地的存储。 2.在 HTML5 之前,应用程序数据只能存储在 cookie 中,包括每个服务器请求。本地存储则更安全,并且可在不影响网站性能的前提下将大量数据

babyxuqian的博客 1388

Verilog--CDC跨时钟域处理(快时钟域到慢时钟域)

Verilog--CDC跨时钟域处理(快时钟域到慢时钟域)CDC问题单比特信号的跨时钟域问题从快时钟域到慢时钟域从慢时钟域到快时钟域多比特信号的跨时钟域问题异步FIFO握手协议 今天先写单比特信号从快时钟域到慢时钟域的方法,后续继续填坑 CDC问题 单比特信号的跨时钟域问题 从快时钟域到慢时钟域 设计思想   从慢时钟域到快时钟域通常使用打两拍的方法,这也适用于从快时钟域到慢时钟域时,但是如果当单比特信号持续时间小于快时钟域的一个周期时,需要用展宽信号再打两拍的方法。 设计相关代码 module Sync_

weixin_44425619的博客 9358

Windows配置L2TP/IPsec连接

Windows 系统的 L2TP/IPsec 功能,通过配置即可构建加密 VPN 通道。

m0_61806534的博客 1666

封装localStorage,支持切换存储引擎 sessionStorage,支持vue hook方式调用

【代码】封装localStorage,支持切换存储引擎 sessionStorage,支持vue hook方式调用。

逆水行舟,不进则退 606

第五章 TTM 后备管理:5.6系统内存域

系统内存域由 TTM 内置资源管理器管理,通过 ttm_tt 承载页信息,依赖 ttm_pool 提供物理页。ttm_tt 管理页数组、缓存属性与状态标志,支持外部页与换出机制。初始化分 ttm_tt_init 与 ttm_sg_tt_init,生命周期包括创建、填充、释放与销毁。页池针对 write-combined、uncached 及一致性 DMA 分配的页进行缓存,提升性能并减少 TLB 刷新。分配时高阶优先、批量设置缓存属性,回收时清零后归还池中,确保高效复用。

图形/计算GPU的驱动与虚拟化技术分享园地 2557

Vue 03 组件通信

组件通信:自定义事件、全局事件总线、消息订阅与发布

yavlgloss的博客 991

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Axios请求封装,项目打包后修改请求地址配置文件——详细版

Axios请求封装,项目打包后修改请求地址配置文件——copy直接可用

m0_55794001的博客 627

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

JB3-7-Vue(二)

封装通用JS文件(工具,请求等),封装ElementPlus组件(路径导航,图标文字,数据页头,数据表格,数据表单,上传文件等)

周航宇的博客 957

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

vue笔记

监听字符串、数字、布尔值等简单数据类型时,直接在watch中定义与数据同名的属性,属性值为处理函数(接收两个参数:新值newVal和旧值oldValdata() {return {username: '', // 简单数据age: 18},watch: {// 监听 username 的变化console.log('用户名从', oldVal, '变成了', newVal);},// 监听 age 的变化。

2301_79775040的博客 4281

session事件监听器

在开发中遇到了这样的一个问题,tab切换时,要把tabA中表格的数据带到tabB的下拉选框中,tabA和tabB不在同一个组件中,由于tabB组件层级较深,所以当时想到的解决方案是sessionStorage缓存。提测时,反馈发现tabA组件中更新后,tabB不能及时更新。

Joyce的博客 276

数据状态持久化插件 vuex-persistedstate 的使用

解决页面刷新后 vuex 数据丢失的几种方法, 以及数据状态持久化插件 vuex-persistedstate 的使用与介绍

a123456234的博客 1353

样式、随笔 (个人笔记)

* 解释:0 0 是阴影的x,y偏移量;10px 是阴影的模糊半径;rgba(0,0,0,0.5) 是阴影的颜色和透明度 *//* 添加圆形阴影 */

qq_33138785的博客 579

2026前端面试题汇总(持续更新2026-06-18)

本文汇总了2026年前端面试高频考点,涵盖字节、腾讯、快手等大厂及AI方向的面试真题。内容包含JavaScript核心(事件循环、数据类型判断)、框架原理(Vue/React响应式)、性能优化(FCP、虚拟列表)等专题,由华为HDE专家整理。文章平均质量分95,总阅读量超2万,持续更新中,适合前端开发者收藏备考。

weixin_50077637的博客 1万+

会话管理利器:session-wrap-skill的设计原理与实战应用

会话管理是现代Web开发中的基础概念,它负责在用户访问期间维持状态与数据。其核心原理是通过客户端或服务器端的存储机制,在多次请求间保持信息的连续性。在单页应用和复杂后台系统中,有效的会话管理技术能显著提升用户体验和系统健壮性。原生会话API如localStorage存在数据类型单一、缺乏命名空间和过期机制等局限性。session-wrap-skill项目通过包装器模式,统一封装底层存储,提供了自动序列化、命名空间隔离、变化监听等高级特性,解决了状态丢失和数据同步等工程痛点。该工具特别适用于需要处理用户认证状

weixin_30788239的博客 620

登录模块(二)-保存用户信息 和 访问权限控制

05-登录补充-保存用户信息 封装了模块操作存储:store/index.js // 提供存储信息的函数 提供获取用户信息的函数 提供删除用户信息的安函数 const KEY = 'hm-toutiao-79-user' export default { setUser (user) { // 把user对象存储到sessionStorage const jsonStr =...

weixin_44867717的博客 681

react实现参数缓存

react数据缓存,类似与vue的keep-alive

weixin_52797317的博客 470

JSON.parse与stringify实战指南:数据类型转换守门人

JSON 是 Web 开发中跨语言、跨平台数据交换的事实标准,其核心在于字符串与内存对象之间的安全转换。JSON.parse() 将符合规范的 JSON 字符串解析为 JavaScript 值,而 JSON.stringify() 则将可序列化值转化为标准字符串格式——二者共同构成数据流中的‘类型转换守门人’。它们解决的是 HTTP 协议只传文本、localStorage 只存字符串、前后端需共享契约等底层约束。实际应用中,必须直面 undefined、Date、BigInt、循环引用等非标准类型的处理难题

weixin_34242819的博客 477
上一篇: vue-04 基本依赖介绍
下一篇: vue-06 vue使用axios接口错误拦截
别浪呀
博客等级 码龄8年 1万+粉丝 260原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值