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)中,并将其添加到请求头中,提供了一种安全的方式进行身份验证。

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

相关推荐
tangfuling19913 天前
用 nextjs 创建 Node+React Demo
前端框架·react·nextjs
赚钱给孩子买茅台喝3 天前
智能BI项目第一期
java·人工智能·springboot·react
不cong明的亚子4 天前
webpack5-手撸RemoveConsolePlugin插件
前端·webpack·react
技术无疆5 天前
跨平台开发新视角:利用Android WebView实现Web内容的原生体验
android·java·前端·ios·react·web·webview
buyue__6 天前
React18快速入门
react
B.-6 天前
Remix 学习 - 路由模块(Route Module)
前端·javascript·学习·react·web
kkkAloha11 天前
react | 自学笔记 | 持续更新
react
逆风就重开13 天前
【实战教程】用 Next.js 和 shadcn-ui 打造现代博客平台
开发语言·前端·react
前端菜鸟来报道17 天前
React 实现PDF预览(数据源使用文件流而不是url)
react·pdf预览
洛小豆18 天前
前端代码提交前的最后防线:使用Husky确保代码质量
前端·git·vue·react