当前位置:首页 > React

react 如何操作cookie

2026-03-30 18:30:56React

操作 Cookie 的方法

在 React 中操作 Cookie 可以通过原生 JavaScript 的 document.cookie API 或第三方库(如 js-cookie)来实现。以下是两种方法的详细说明:

使用原生 JavaScript 操作 Cookie

原生 JavaScript 提供了 document.cookie 来读取和设置 Cookie,但需要手动处理字符串格式。

设置 Cookie

document.cookie = "username=JohnDoe; expires=Thu, 18 Dec 2025 12:00:00 UTC; path=/";
  • username=JohnDoe 是键值对。
  • expires 设置过期时间(UTC 格式)。
  • path=/ 指定 Cookie 的作用路径。

读取 Cookie

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

删除 Cookie 通过设置过期时间为过去的时间来删除 Cookie:

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

使用 js-cookie 库操作 Cookie

js-cookie 是一个轻量级库,简化了 Cookie 的操作。

react 如何操作cookie

安装

npm install js-cookie

设置 Cookie

import Cookies from 'js-cookie';

Cookies.set('username', 'JohnDoe', { expires: 7, path: '/' }); // 7 天后过期

读取 Cookie

react 如何操作cookie

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

删除 Cookie

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

在 React 组件中使用 Cookie

结合 React 的生命周期或 Hooks 管理 Cookie:

函数组件示例

import React, { useEffect } from 'react';
import Cookies from 'js-cookie';

const UserProfile = () => {
  useEffect(() => {
    Cookies.set('lastVisited', new Date().toISOString(), { expires: 1 });
  }, []);

  return <div>Last visited: {Cookies.get('lastVisited')}</div>;
};

export default UserProfile;

类组件示例

import React from 'react';
import Cookies from 'js-cookie';

class UserProfile extends React.Component {
  componentDidMount() {
    Cookies.set('lastVisited', new Date().toISOString(), { expires: 1 });
  }

  render() {
    return <div>Last visited: {Cookies.get('lastVisited')}</div>;
  }
}

export default UserProfile;

注意事项

  1. 安全性:避免存储敏感信息(如密码),必要时使用 HttpOnlySecure 标志。
  2. 同源策略:Cookie 受同源策略限制,确保域名和路径一致。
  3. SSR 兼容性:在服务端渲染(如 Next.js)中,需检查 window 对象是否存在。

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

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

相关文章

如何生成react代码

如何生成react代码

使用 Create React App 生成项目 安装 Node.js 后,通过命令行工具运行以下命令创建新项目: npx create-react-app my-app cd my-app npm…

react native如何

react native如何

React Native 基础知识 React Native 是一个由 Facebook 开发的框架,用于使用 JavaScript 和 React 构建跨平台移动应用。它允许开发者编写一次代码,同时…

如何设计react组件

如何设计react组件

设计 React 组件的核心原则 React 组件的设计需要遵循高内聚、低耦合的原则,确保组件功能独立且易于维护。组件的设计可以分为展示组件和容器组件两类,展示组件负责 UI 渲染,容器组件负责逻辑处…

react如何获取光标

react如何获取光标

获取光标位置的方法 在React中获取光标位置通常涉及处理输入框或文本区域的onChange或onSelect事件。以下是几种常见的方法: 通过selectionStart和selectionEnd…

react路由如何刷新

react路由如何刷新

React 路由刷新方法 在 React 中,路由刷新通常涉及以下几种场景和解决方案: 强制重新加载当前页面 使用 window.location.reload() 可以强制刷新整个页面,但会丢失…

vue 实现选题操作

vue 实现选题操作

实现选题操作的基本思路 在Vue中实现选题操作通常涉及数据绑定、事件处理和状态管理。通过v-model或自定义事件实现选项的选择与反选,结合计算属性或方法动态更新选中状态。 单选功能实现 使用v-m…