当前位置:首页 > React

react如何接受cookie

2026-02-12 07:58:04React

在 React 中接收 Cookie

React 本身不直接处理 Cookie,但可以通过 JavaScript 的 document.cookie 或第三方库(如 js-cookie)来读取 Cookie 数据。以下是几种常见方法:

使用 document.cookie 原生 API

通过 document.cookie 可以获取当前域名下的所有 Cookie,返回的是一个字符串,格式为 key=value 的分段组合。

const cookies = document.cookie; // 获取所有 Cookie
console.log(cookies); // 输出类似 "token=abc123; theme=dark"

如果需要解析特定 Cookie 的值,可以编写辅助函数:

function getCookie(name) {
  const cookies = document.cookie.split(';');
  for (let cookie of cookies) {
    const [key, value] = cookie.trim().split('=');
    if (key === name) return value;
  }
  return null;
}

const token = getCookie('token'); // 获取名为 "token" 的 Cookie

使用 js-cookie

js-cookie 是一个轻量级库,简化了 Cookie 操作。首先安装库:

npm install js-cookie

在组件中使用:

import Cookies from 'js-cookie';

// 读取 Cookie
const userToken = Cookies.get('token'); 
console.log(userToken); // 输出值或 undefined

// 读取所有 Cookie
const allCookies = Cookies.get();
console.log(allCookies); // 输出对象 { token: "abc123", theme: "dark" }

在服务端渲染(SSR)中处理 Cookie

如果使用 Next.js 等框架,服务端可以通过请求头(如 req.headers.cookie)获取 Cookie:

// Next.js API 路由示例
export default function handler(req, res) {
  const cookies = req.headers.cookie; // 获取请求中的 Cookie
  res.status(200).json({ cookies });
}

客户端通过 getServerSideProps 传递:

react如何接受cookie

export async function getServerSideProps(context) {
  const { req } = context;
  const cookies = req.headers.cookie || '';
  return { props: { cookies } };
}

注意事项

  • 安全性:避免将敏感 Cookie 暴露给客户端代码。
  • HTTP Only Cookie:标记为 HttpOnly 的 Cookie 无法通过 JavaScript 读取,仅服务端可访问。
  • 路径/域名限制:确保 Cookie 的 pathdomain 与当前页面匹配。

标签: reactcookie
分享给朋友:

相关文章

react 如何debug

react 如何debug

React 调试方法 使用 React Developer Tools React Developer Tools 是浏览器扩展,支持 Chrome 和 Firefox。安装后,可以在开发者工具中查看…

react 如何精通

react 如何精通

掌握核心概念 深入理解React的基础概念,包括组件(函数组件与类组件)、状态(useState)、生命周期(useEffect)、Props传递、虚拟DOM与Diff算法。通过官方文档或《React…

如何监控react性能

如何监控react性能

使用 React Profiler API React 16.5 及以上版本内置了 Profiler API,可直接测量组件渲染时间。通过 <React.Profiler> 包裹目标组件,…

react 如何传递props

react 如何传递props

传递 props 的基本方法 在 React 中,props 是从父组件向子组件传递数据的主要方式。通过在子组件的标签上添加属性,可以将数据传递给子组件。 父组件中传递 props: functi…

react如何取消监听

react如何取消监听

取消事件监听的方法 在React中取消事件监听通常涉及在组件卸载时移除之前添加的监听器。以下是几种常见场景的解决方案: 类组件中的取消监听 对于类组件,通常在componentDidMount中添加…

react 如何显示html

react 如何显示html

渲染原始 HTML 在 React 中直接插入原始 HTML 需要使用 dangerouslySetInnerHTML 属性。这个属性允许将 HTML 字符串直接渲染到 DOM 中,但需要注意潜在的安…