第32篇:前端本地存储全解——Cookie、localStorage、sessionStorage 区别与实战

前言

在我们博客项目中,我们使用过 localStorage 做主题缓存、数据持久化。

但浏览器存储体系包含三种:localStorage、sessionStorage、Cookie

90%新人只会用 localStorage,不知道:

  • 三种存储的区别

  • 什么时候用哪个

  • 存储大小、生命周期、是否随请求发送

  • 项目真实业务场景选型

本篇高质量完整吃透浏览器本地存储,补齐前端存储体系,优化博客项目缓存逻辑,面试高频题一网打尽。

一、三种存储核心区别(面试必背表格)

特性 localStorage sessionStorage Cookie
生命周期 永久存储,手动删除才消失 会话级,关闭页面立即清空 可设置过期时间,默认会话级
存储大小 5MB 5MB 4KB(极小)
是否随请求发送 不发送 不发送 每次请求自动携带
访问权限 同域名所有页面共享 当前页面独享 域名+路径限制
用途 本地持久化缓存 临时页面数据 登录态、令牌、用户标识

二、localStorage 实战封装(博客项目升级)

原生API需要手动JSON序列化、捕获异常,我们封装通用本地存储工具

复制代码

// 存储 export const setLocal = (key,value) => { localStorage.setItem(key,JSON.stringify(value)) } // 获取 export const getLocal = (key) => { const data = localStorage.getItem(key) return data ? JSON.parse(data) : null } // 删除 export const removeLocal = (key) => { localStorage.removeItem(key) }

适配对象、数组、普通数据,项目统一调用,简洁稳定。

三、sessionStorage 适用场景

适合临时数据

  • 本次页面打开的搜索临时记录

  • 页面临时表单草稿

  • 刷新保留、关闭消失的临时状态

四、Cookie 核心知识点(登录态原理)

Cookie 最大特点:浏览器每次请求后端都会自动携带

所以登录态、用户验证、token 传统方案全部依赖 Cookie

复制代码

document.cookie = "username=zhangsan; max-age=3600; path=/"

五、项目选型规范(开发直接照抄)

  • 永久本地配置、主题、缓存数据 → localStorage

  • 页面临时数据、关闭即清空 → sessionStorage

  • 用户登录、后台鉴权、请求携带参数 → Cookie

六、面试高频问答

1. localStorage 刷新会丢失吗?

不会,永久保存,清除缓存、手动删除才会丢失。

2. sessionStorage 刷新保留吗?

刷新页面保留,关闭标签页彻底清空。

只有4KB,且每次请求都会携带,过大导致请求头臃肿、网络变慢。

4. 三者哪个最安全?

都可被前端读取,无法存敏感密码,敏感数据必须存后端。

七、本篇结语

本地存储是前端业务开发100%高频使用的能力。

本篇彻底补齐浏览器存储体系,让你的博客项目缓存逻辑更加规范、专业,同时拿下一套完整面试考点。

相关推荐
excel39 分钟前
前端加密的作用与使用场景
前端
计算机魔术师2 小时前
纽约时报版权诉讼披露:微软高管内部称训练 AI 是人类历史上最大规模劳动窃取
前端
去伪存真2 小时前
大模型的参数量为什么那么大?
前端·人工智能
IT_陈寒2 小时前
Java空指针这次真把我坑惨了
前端·人工智能·后端
八荒启·交互动画4 小时前
# Web特效020—让 Web 特效真正动起来:时间循环应该怎么接
前端·webgl·网页特效·八荒启-交互动画·八荒启
动恰客流统计4 小时前
线下零售数字化浪潮下,客流统计的3个核心发展趋势
大数据·前端·人工智能
用户938515635074 小时前
从小米前端面试题,彻底搞懂闭包、作用域链与 useState 惰性初始化
前端·面试
粥里有勺糖5 小时前
视野修炼第133期 | Native 回春了?
前端·github·agent
aichitang20245 小时前
前端小skill
前端·人工智能·算法·ai·前端框架
前端·柱子6 小时前
q-floodfill白边锯齿?一招搞定抗锯齿边缘问题
前端·html·canva可画