返回博客

在 React 应用程序中使用 HTTP 客户端 Axios:教程

在 React 应用程序中使用 HTTP 客户端 Axios:教程

许多 Web 应用程序在开发过程中的某个阶段都需要与 REST API 进行交互。对于 React 架构的 Web 应用程序,我们可以使用 Axios,这是一个轻量级的 HTTP 客户端,基于 $http Angular.js v1.x 中的服务。其功能类似于 JavaScript’s 原生的 Fetch API.

Axios 是基于 promise 的,这使我们能够结合 JavaScript 的 asyncawait 以编写更具可读性的同步代码。它还支持拦截和请求取消。此外,它还内置了针对跨站请求伪造的客户端保护。

在本指南中,我们将展示 如何使用 Axios 访问流行的 JSON Placeholder API,在一个 React 演示应用程序中。您可以通过此教程了解更多关于 JavaScript 中的 JSON 格式.

前提条件

要完成本指南中演示的步骤,您需要以下组件:

步骤 1:在 React 项目中安装 Axios

Axios 可以直接作为 npm 模块使用。查看 npm 上的 Axios。我们只需要建立一个 React 项目并安装 Axios 包。

以下 npx 命令将运行 create-react-app 来创建一个新的 React 项目。项目名称将用于为该项目创建一个专用目录。在这里,我们将项目命名为 react-axios-demo。运行以下命令:

npx create-react-app

将当前目录更改为新创建的项目目录:

接下来,调用 npm install 命令来安装 Axios。如果没有指定版本,那么 npm 将自动下载并安装最新版本的 Axios:

npm install axios

我们的项目现在已经准备好使用 Axios 了!是时候将其功能付诸行动了。

步骤 2:构建 GET 请求

在这一步中,我们将展示如何创建一个使用 Axios 发送 GET 请求的新组件。

首先,创建一个新的组件 PersonList ,用于显示姓名列表。创建一个专用目录来存储该组件:

mkdir -pv

接下来,创建文件 PersonList.js :

在文本编辑器中打开该文件。为了舒适和可读性,我们使用的是 Visual Studio Code 。输入以下 JavaScript 代码:

 

this.state.persons

在这里:

  • 我们导入了 React 和 Axios,以便我们可以在组件中同时使用它们。

  • 我们挂载到 componentDidMount 生命周期钩子并发送一个 GET 请求。

您可以使用 axios.get(<url>) 从 API 端点获取一个 promise(返回一个响应对象)。在响应对象中,包含所需的数据。然后我们将其分配给 的值。person。我们还可以收集有关请求的其他信息,例如在 下的状态码res.status 或来自 的更多信息res.request.

接下来,我们需要将组件添加到主 App.js 文件中。添加以下代码:

 

import PersonList

该步骤的配置已完成。您现在可以运行该应用程序并使用您喜欢的浏览器进行测试。启动开发服务器:

Axios React code screenshot 1

正如我们所见,输出以随机顺序显示了人员姓名列表:

React app

步骤 3:构建 POST 请求

在本节中,我们将展示如何使用 Axios 执行另一个名为 POST 的 HTTP 请求方法。为了演示这一点,我们的目标是在我们的 React 项目中创建一个名为 PersonAdd.

的新组件。创建文件 PersonAdd.js:

Axios React code screenshot 2

然后,在文本编辑器中打开该文件并输入以下代码:

Axios React code screenshot 3

在这段代码中,我们获取用户输入并将内容 POST 到 API。在 handleSubmit 函数内部,我们阻止了表单的默认操作,并将状态更新为用户输入。当使用 POST 时,它会返回相同的响应对象。我们可以在 then 调用中使用该对象。为了完成 POST 请求,我们捕获用户输入并将其与 POST 请求一起发送。它会给我们一个响应。我们使用 console.log 记录响应。它应该在表单中显示 user 输入。

接下来,将组件添加到 App.js 中。完整代码应该如下所示:

Axios React code screenshot 4

现在,是时候测试更改了。启动开发服务器:

在 Web 浏览器上查看更改:

Axios React code screenshot 5

步骤 4:构建 DELETE 请求

在本节中,我们将演示如何在 axios.delete 的帮助下从 API 中删除项目,并使用 URL 作为参数。为了演示,创建组件 PersonRemove。创建文件 PersonRemove.js,位于 src/components 目录中:

Axios React code screenshot 6

之后,在文本编辑器中打开该文件并添加以下代码:

Axios React code screenshot 7

在这里, res 对象提供了有关请求的信息。然后我们可以在表单提交后使用 console.log

接下来,将该组件实现到 App.js:

Axios React code screenshot 8

是时候再次测试我们的代码了。启动服务器:

您应该会看到一个新表单,该表单获取用户的姓名并将其从列表中删除:

npm start

第 5 步:在 Axios 中应用基本实例

现在,我们将使用 Axios 基本实例。在这里,我们可以定义一个 URL 和其他配置元素。要实现它,请创建一个单独的文件 api.js:

Axios React code screenshot 9

在文本编辑器中打开它并输入以下代码:

export default axios.create

设置完成后,我们就可以在 PersonRemove 组件中使用它。代码如下所示:

Axios React code screenshot 10

在这里,http://jsonplaceholder.typicode.com/ 被设置为基本 URL。现在,我们不再需要在每次访问 API 端点时都使用完整 URL。

Step 6: Implement async and await

在本节中,我们将了解如何实现 asyncawait 来处理 promise。 await 关键字会解析 promise 并返回 value。我们可以将此 value 赋值给一个变量,以便更方便地使用。

以下是更新后的 PersonRemove.js 代码:

Implement async and await

在这里,我们替换了 .then()。一旦 promise 被解决,我们将值存储在变量 response.

总结

在本教程中,我们探索了使用 Axios 处理 REST API 的各种示例。这些代码展示了如何创建 HTTP 请求和处理响应。

有兴趣学习更多关于 JavaScript 的知识吗?查看我们关于各种 JavaScript 概念和特性的其他初学者指南,例如 日期和时间, 字符串操作, ,以及 对象.

祝您编程愉快!

author

Hark Labs

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的创意设计师,专注于通过传统和创新营销渠道打造一致的企业形象。他擅长将艺术愿景与战略营销相融合,创造具有影响力的品牌叙事。

评论

暂无评论。发表第一条评论吧。