当前位置:首页 > React

react 如何操作cookie

2026-02-11 15:33:39React

操作 Cookie 的方法

在 React 中操作 Cookie 可以通过原生 JavaScript 的 document.cookie 或第三方库(如 js-cookie)实现。以下是具体方法:

原生 JavaScript 方法

使用 document.cookie 直接读写 Cookie:

// 设置 Cookie
document.cookie = "username=JohnDoe; expires=Thu, 18 Dec 2023 12:00:00 UTC; path=/";

// 读取 Cookie
const cookies = document.cookie.split(';').reduce((acc, cookie) => {
  const [name, value] = cookie.trim().split('=');
  acc[name] = value;
  return acc;
}, {});
console.log(cookies.username); // 输出 "JohnDoe"

// 删除 Cookie
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";

使用 js-cookie 库

安装 js-cookie 库:

npm install js-cookie

在组件中使用:

import Cookies from 'js-cookie';

// 设置 Cookie
Cookies.set('username', 'JohnDoe', { expires: 7, path: '/' });

// 读取 Cookie
const username = Cookies.get('username');
console.log(username); // 输出 "JohnDoe"

// 删除 Cookie
Cookies.remove('username', { path: '/' });

注意事项

  • 安全性:避免存储敏感信息,考虑使用 HttpOnlySecure 标志增强安全性。
  • 路径和域名:明确指定 pathdomain 以确保 Cookie 在正确的作用域生效。
  • 过期时间:设置合理的 expiresmax-age 控制 Cookie 生命周期。

服务端渲染(SSR)场景

在 Next.js 等框架中,需区分客户端和服务端环境:

react 如何操作cookie

if (typeof window !== 'undefined') {
  // 客户端操作 Cookie
  Cookies.set('token', '12345');
}

通过以上方法,可以灵活地在 React 中管理 Cookie。

标签: 操作react
分享给朋友:

相关文章

react native 如何

react native 如何

安装 React Native 开发环境 确保系统已安装 Node.js(建议版本 16 或更高)。通过以下命令安装 React Native CLI 工具: npm install -g reac…

如何优化react

如何优化react

优化 React 性能的方法 使用 React.memo 或 PureComponent 对于函数组件,使用 React.memo 进行记忆化,避免不必要的重新渲染。类组件可以使用 PureCompo…

react如何部署

react如何部署

部署 React 应用的常见方法 使用静态服务器部署 React 应用在构建后会生成静态文件,可以直接通过静态服务器部署。常用的静态服务器包括 Nginx、Apache 等。 运行构建命令生成静态文…

react如何运行

react如何运行

运行React项目的步骤 安装Node.js 确保系统已安装Node.js(建议版本12以上),可从官网下载并安装。Node.js自带npm包管理器,用于后续依赖安装。 创建React项目 使用官方…

react如何同步

react如何同步

React 同步状态管理方法 在 React 中实现同步状态管理,可以通过以下多种方式实现: 使用 useState 和 useEffect 钩子 通过 useState 定义状态,使用 useEf…

react如何折叠

react如何折叠

在 React 中实现折叠功能 使用 useState 管理折叠状态 通过 useState 定义一个状态变量来控制折叠面板的显示与隐藏。例如: const [isCollapsed, setIsC…