umi-request 和 umi 的区别是什么

文章目录

    • [umi-request 和 umi 的区别是什么](#umi-request 和 umi 的区别是什么)
    • [为什么 使用 umi-request 替换 umi](#为什么 使用 umi-request 替换 umi)

umi-request 和 umi 的区别是什么

为什么 使用 umi-request 替换 umi

umi-request 是一个基于 fetch 的网络请求库,专门为 Umi 开发的。相比于 Umi 内置的 request 模块,umi-request 提供了更多的功能和灵活性。

使用 umi-request 的主要原因可能包括以下几点:

更强大的功能:umi-request 提供了丰富的功能,如请求拦截器、响应拦截器、异常处理、请求重试等。这些功能可以帮助您更好地管理和处理网络请求。

更好的兼容性:umi-request 基于标准的 fetch API 实现,与现代浏览器兼容性更好。而内置的 request 模块可能在某些特定浏览器或环境中存在兼容性问题。

可扩展性:umi-request 提供了丰富的插件机制,可以轻松地添加自定义的中间件或拦截器,以满足特定的需求。

社区支持:umi-request 是一个独立的开源项目,拥有活跃的社区支持和维护。您可以从社区中获取更多的功能扩展、文档和帮助。

需要注意的是,使用 umi-request 取决于您的具体需求和偏好。如果您对 umi 内置的 request 模块感到满意并满足您的需求,那么您可以继续使用它。如果您需要更多的功能和灵活性,或者对 umi-request 的功能更感兴趣,那么可以考虑切换到 umi-request。

示例demo

bash 复制代码
// import { request } from 'umi';
import request from 'umi-request';

// request拦截器, 改变url 或 options.
request.interceptors.request.use((url, options) => {
  let token = localStorage.getItem('token');
  if (null === token) {
      token = '';
  }
  const authHeader = { Authorization: `Bearer ${token}` };
  return {
    url: url,
    options: { ...options, interceptors: true, headers: authHeader },
  };
});

通过 Umi Request 库来实现请求的拦截器。拦截器的作用是在每次请求发送之前,对请求的 URL 和选项进行修改或添加一些自定义的处理逻辑。

在这个例子中,拦截器的作用是为每个请求添加一个包含授权信息的请求头。具体来说,它从 localStorage 中获取存储的 token,并将其添加到请求头的 Authorization 字段中,用于进行身份验证。

这种实现的目的是为了实现全局的身份验证机制。通过在请求拦截器中添加授权信息,每个发送的请求都会自动附带授权头部,而无需在每个请求中手动添加授权信息。

这样的实现方式具有以下优点:

  • 方便:只需在请求拦截器中添加一次授权逻辑,即可自动为每个请求添加授权信息,无需在每个请求中重复添加。
  • 统一:确保每个请求都遵循相同的身份验证规则,提高代码的可维护性和一致性。
  • 安全:通过将授权信息存储在安全的方式(例如 localStorage)中,并将其添加到请求头中,提供了一种安全的方式进行身份验证。

通过在请求拦截器中添加授权信息,可以实现全局的身份验证,提高代码的可维护性和安全性。这种实现方式可以方便地适用于各种请求,并提供了一种统一的身份验证机制。

相关推荐
liangshanbo121521 分钟前
面试题:React 中 useReducer 和 useState 有什么区别?什么时候应该使用 useReducer?
react·usereducer
FungLeo9 小时前
成为全栈·React 管理后台篇·后台骨架:布局、数据路由与分层守卫
react·管理后台·权限控制·react router·前端路由·成为全栈
秋秋小事12 小时前
React hooks总览
react
西瓜太郎12343 天前
外层模型卡片与分组详情成功率不一致,应该怎么排查?
前端·typescript·go·软件工程·react
星辰徐哥3 天前
本地视频预览别只自己看:把Remotion动效项目发给客户远程验收
docker·ai·node.js·html·音视频·react·remotion
知兀5 天前
【前端】受控和非受控组件
前端·javascript·react
醉颜凉5 天前
React触摸事件全解析:掌握移动端交互开发的核心秘籍
react·前端开发·触摸事件·移动端交互·react事件
递归尽头是星辰6 天前
Java 智能体工程化:从 Spring AI 出发读懂 AgentScope
react·智能体·springai·javaai·agentscope
Richown9 天前
React 高级模式:并发渲染下的状态机驱动架构——从 Finite State Machine 到生产级实现
区块链·react
LayZhangStrive10 天前
Agent开发 - 实现人类与Manus智能体的终端窗口命令交互
ai·交互·agent·react·终端·manus