在前端开发中,数据本地存储是提升用户体验、优化性能、实现持久化状态的核心技术。我们最常用的就是 localStorage、sessionStorage 和 cookie 这三种方案,但很多开发者容易混淆它们的用法、存储特性和适用场景。
一、先搞懂核心概念
- cookie:最早的客户端存储方案,会随 HTTP 请求自动发送到服务器,主要用于身份验证、会话保持。
- localStorage:HTML5 新增的本地存储,持久化存储,手动清除才会消失,不参与网络请求。
- sessionStorage:HTML5 新增的会话存储,页面会话期间有效,关闭标签页 / 浏览器就清空。
二、核心区别一张表看懂
| 特性 | localStorage | sessionStorage | cookie |
|---|---|---|---|
| 生命周期 | 永久有效,手动清除 | 仅当前会话(关闭标签 / 浏览器失效) | 可设置过期时间,默认会话级 |
| 存储容量 | 约 5MB | 约 5MB | 很小,仅 4KB |
| 与服务端通信 | 不参与 | 不参与 | 自动携带在 HTTP 请求头中 |
| 访问权限 | 同源(协议 + 域名 + 端口)共享 | 同源 + 同一标签页 共享 | 同源共享 |
| API 易用性 | 简单,键值对 API | 简单,键值对 API | 原生 API 繁琐,需手动封装 |
| 安全性 | 较高,不发往服务器 | 较高,不发往服务器 | 需配置 HttpOnly/Secure 防攻击 |
| 数据类型 | 仅支持 字符串 | 仅支持 字符串 | 仅支持 字符串 |
一句话总结:存大量数据用 localStorage,临时会话用 sessionStorage,需要给服务器传的状态用 cookie。
三、基础用法速查(代码示例)
三者都是键值对存储,且只能存字符串,复杂对象需用 JSON 转换。
1. localStorage
// 存
localStorage.(, );
.(, .({ : }));
name = .();
user = .(.());
.();
.();


