前端项目中 cookie、sessionStorage 和 localStorage的详细用法

本文介绍了前端开发中常用的存储技术,包括cookie、sessionStorage和localStorage的使用方法。详细解释了如何设置、读取、删除这些存储,并提供了JSON对象的存储示例。

一.cookie的使用

1.首先加载模块

npm i js-cookie -S

2.在使用cookie的页面上进行引入

import Cookies from 'js-cookie'

3,使用方法

创建一个在整个网站上有效的Cookie

Cookies.set('name', 'value');

创建一个从现在起7天后过期的cookie,在整个站点上有效:

Cookies.set('name', 'value', { expires: 7 });

创建一个过期的cookie,对当前页面的路径有效:

Cookies.set('name', 'value', { expires: 7, path: '' });

读取cookie:

Cookies.get('name'); // => 'value'
Cookies.get('nothing'); // => undefined

阅读所有可见的Cookie:

Cookies.get(); // => { name: 'value' }

删除cookie:

Cookies.remove('name');

删除对当前页面路径有效的cookie:

Cookies.set('name', 'value', { path: '' });
Cookies.remove('name'); // fail!
Cookies.remove('name', { path: '' }); // removed!

### sessionStoragelocalStorage Cookie 的区别及用法 #### 数据存储位置 - **Cookie**: 存储在浏览器与服务器之间,每次HTTP请求都会携带Cookie数据[^1]。 - **sessionStorage**: 仅在客户端(浏览器)中保存,不会发送至服务器[^1]。 - **localStorage**: 同样仅在客户端保存,也不会参与服务器的通信[^4]。 #### 生命周期 - **Cookie**: 只在设定的有效期内有效,可以通过`Expires`属性指定过期时间。如果未设置,则默认为会话结束时失效[^1]。 - **sessionStorage**: 仅在当前浏览器窗口或标签页关闭前有效,一旦关闭则数据丢失[^1]。 - **localStorage**: 数据具有永久生命周期,除非手动清除,否则数据始终存在[^4]。 #### 数据容量限制 - **Cookie**: 单个Cookie大小不得超过4KB,且由于其随每次HTTP请求传输,因此不适合存储大量数据[^3]。 - **sessionStorage** **localStorage**: 它们的存储上限通常可达5MB甚至更高,具体取决于浏览器实现[^3]。 #### 数据共享特性 - **Cookie**: 在同一域名下的所有页面间共享。 - **sessionStorage**: 不支持跨窗口共享,即不同浏览器窗口中的sessionStorage相互独立。 - **localStorage**: 支持在同一域名下的所有窗口间共享数据。 #### 使用场景建议 - 当需要频繁向服务器提交少量状态信息时可选用Cookie;当希望临时保存某些仅供前端使用的非敏感数据并限于单一浏览会话期间可用sessionStorage;而对于那些需长久保留又无需同步到服务端的信息宜采用localStorage[^2]。 以下是针对这三种技术的一些基本操作示例: ```javascript // 对于 localStorage 的增删改查方法演示如下: // 设置键值对 localStorage.setItem('username', 'Alice'); // 获取对应键的值 let name = localStorage.getItem('username'); console.log(name); // 输出 Alice // 删除特定键值对 localStorage.removeItem('username'); // 清除全部数据项 localStorage.clear(); ``` 同样地,sessionStorage API接口几乎完全一致只是作用范围有所差异而已,在此不再赘述。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值