news 2026/7/26 14:17:58

js-cookie:轻量级浏览器 Cookie 管理库完全指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
js-cookie:轻量级浏览器 Cookie 管理库完全指南

js-cookie:轻量级浏览器 Cookie 管理库完全指南

【免费下载链接】js-cookieA simple, lightweight JavaScript API for handling browser cookies项目地址: https://gitcode.com/gh_mirrors/js/js-cookie

js-cookie 是一个简单、轻量级的 JavaScript API,专门用于处理浏览器 Cookie。这个强大的库让开发者能够轻松地创建、读取和删除 Cookie,而无需担心复杂的原生 API。

项目概述

js-cookie 是一个专注于简化浏览器 Cookie 操作的 JavaScript 库。它提供了直观的 API 接口,让开发者能够以更优雅的方式管理客户端数据存储。

核心特性:

  • 广泛的浏览器支持
  • 支持任何字符编码
  • 经过充分测试
  • 无任何依赖
  • 支持 ES 模块和 CommonJS
  • 符合 RFC 6265 标准
  • 支持自定义编码/解码
  • 压缩后小于 800 字节

安装方式

通过 NPM 安装

npm install js-cookie

npm 包提供了module字段指向 ES 模块变体,同时browser字段指向 UMD 模块以保持向后兼容性。

直接引入

可以通过 CDN 直接引入库文件:

<script src="https://cdn.jsdelivr.net/npm/js-cookie@3/dist/js.cookie.min.js"></script>

基础使用

导入库

import Cookies from 'js-cookie' // 或 const Cookies = require('js-cookie')

设置 Cookie

创建基础 Cookie:

Cookies.set('username', 'john_doe')

设置带过期时间的 Cookie:

Cookies.set('session_id', 'abc123', { expires: 7 }) // 7天后过期

读取 Cookie

读取单个 Cookie:

const username = Cookies.get('username') // 返回 'john_doe'

读取所有可见的 Cookie:

const allCookies = Cookies.get() // 返回对象 { username: 'john_doe', session_id: 'abc123' }

删除 Cookie

删除 Cookie 非常简单:

Cookies.remove('username')

Cookie 属性配置

js-cookie 支持所有标准的 Cookie 属性:

Cookies.set('preference', 'dark', { expires: 30, path: '/settings', domain: '.example.com', secure: true, sameSite: 'strict' })

过期时间

定义 Cookie 何时被删除。值可以是数字(表示天数)或 Date 对象。

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

路径限制

指定 Cookie 可见的路径:

Cookies.set('name', 'value', { path: '' }) Cookies.get('name') // => 'value' Cookies.remove('name', { path: '' }) // 成功删除

安全设置

设置安全传输要求:

Cookies.set('name', 'value', { secure: true })

转换器功能

自定义读取转换器

创建新的 API 实例来覆盖默认的解码实现:

document.cookie = 'escaped=%u5317' document.cookie = 'default=%E5%8C%97' var cookies = Cookies.withConverter({ read: function (value, name) { if (name === 'escaped') { return unescape(value) } // 其他 Cookie 使用默认处理 return Cookies.converter.read(value, name) } }) cookies.get('escaped') // 北 cookies.get('default') // 北 cookies.get() // { escaped: '北', default: '北' }

自定义写入转换器

覆盖默认的编码实现:

Cookies.withConverter({ write: function (value, name) { return value.toUpperCase() } })

实际应用场景

用户偏好设置

存储用户的界面主题、语言偏好等设置:

// 保存用户主题偏好 Cookies.set('theme', 'dark', { expires: 365 }) // 读取主题设置 const theme = Cookies.get('theme') || 'light'

会话管理

管理用户登录状态:

// 用户登录时设置会话 Cookie Cookies.set('auth_token', token, { secure: true, sameSite: 'strict' }) // 检查用户是否登录 const isLoggedIn = !!Cookies.get('auth_token')

默认属性设置

可以全局设置 Cookie 属性的默认值:

const api = Cookies.withAttributes({ path: '/', domain: '.example.com' })

编码处理

js-cookie 符合 RFC 6265 标准。所有不允许在 cookie 名称或值中使用的特殊字符都使用其 UTF-8 十六进制等效值进行百分号编码。

最佳实践

  1. 安全性考虑:敏感信息应设置 secure 和 httpOnly 标志
  2. 过期时间:合理设置 Cookie 的过期时间,避免永久存储
  3. 路径限制:使用 path 属性限制 Cookie 的可见范围
  4. 大小限制:注意单个 Cookie 的大小限制(约 4KB)

总结

js-cookie 是一个功能强大且易于使用的 Cookie 管理库,它显著简化了浏览器 Cookie 的操作流程。无论你是构建简单的静态网站还是复杂的企业级应用,js-cookie 都能提供可靠的支持。

通过掌握 js-cookie 的使用技巧,开发者能够更高效地处理客户端数据存储,提升 Web 应用的用户体验和安全性。

【免费下载链接】js-cookieA simple, lightweight JavaScript API for handling browser cookies项目地址: https://gitcode.com/gh_mirrors/js/js-cookie

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/25 13:48:49

KK-HF_Patch完全攻略:让你的恋活游戏体验全面升级

还在为Koikatu游戏的本地化问题头疼吗&#xff1f;KK-HF_Patch这款游戏优化工具将彻底改变你的游戏体验。作为专为恋活系列打造的非官方补丁&#xff0c;它不仅能解决翻译难题&#xff0c;更带来了前所未有的内容创作自由。 【免费下载链接】KK-HF_Patch Automatically transla…

作者头像 李华
网站建设 2026/7/25 4:16:45

移动革命!如何用手机AI语音控制Blender完成3D建模

移动革命&#xff01;如何用手机AI语音控制Blender完成3D建模 【免费下载链接】blender-mcp 项目地址: https://gitcode.com/GitHub_Trending/bl/blender-mcp 你是否曾经在通勤路上突然有了绝佳的3D建模创意&#xff0c;却因为没有电脑而无法实现&#xff1f;或者在客户…

作者头像 李华
网站建设 2026/7/24 0:55:11

零基础学会Open WebUI:你的第一个AI生成网页

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个交互式Open WebUI学习平台&#xff0c;包含&#xff1a;1. 基础概念讲解动画&#xff1b;2. 可视化UI组件拖拽生成器&#xff1b;3. 实时代码反馈窗口&#xff1b;4. 渐进式…

作者头像 李华
网站建设 2026/7/23 3:44:53

计算机体系结构学习终极指南:量化研究方法第六版完整教程

你是否曾经在学习计算机体系结构时感到困惑&#xff1f;&#x1f914; 面对复杂的处理器设计、内存层次结构和性能优化&#xff0c;很多同学都会遇到理解困难。今天我要为你介绍一本改变游戏规则的经典教材——《体系结构&#xff1a;量化研究方法》第六版&#xff0c;这本由20…

作者头像 李华
网站建设 2026/7/24 4:47:21

无需编程知识,小白也能轻松掌握的Win11跳过联网技巧大全。

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 制作一个分步图文指南&#xff1a;1.基础方法&#xff1a;安装时按ShiftF10输入命令 2.进阶方法&#xff1a;修改注册表 3.专业方法&#xff1a;创建自动应答文件。要求&#xff1a…

作者头像 李华
网站建设 2026/7/25 6:29:13

Wabbajack:重新定义游戏模组安装体验的智能革命

还记得那些为了安装一个完美的游戏模组列表而熬过的漫漫长夜吗&#xff1f;下载、解压、排序、冲突排查...每一次都像在走钢丝。现在&#xff0c;这一切都将成为历史。 【免费下载链接】wabbajack An automated Modlist installer for various games. 项目地址: https://gitc…

作者头像 李华