在 React.js 中获取 API 数据的 5 种方法

2025-06-10

在 React.js 中获取 API 数据的 5 种方法

本文是一份参考指南,可帮助您增强作为 React 开发人员的技能以及应对求职面试的技能。

介绍:

React 是用于构建用户界面或 UI 组件的 JavaScript 库之一。许多 React 项目需要与外界数据交互。例如,当我们想要创建一个天气应用时,我们需要动态变化的精确数据。我们可以通过获取 API 来访问这些数据。在本文中,我们将探讨在 React.js 中获取数据的不同方法。

获取数据的方式

1. 使用 Fetch API 在 React 中获取数据

Fetch API 在现代浏览器 (window.fetch) 中可用,它允许我们使用 JavaScript 的 Promise 发出请求。我们可以使用 fetch() 方法获取数据。要使用 fetch 发出简单的 GET 请求,我们只需包含要发送请求的 URL 端点即可。以下是如何使用它的一个示例。

useEffect(() => {
  fetch("https://randomuser.me/api/")
  .then((response) => response.json())
  .then((data) => console.log(data));
  }, []);

Enter fullscreen mode Exit fullscreen mode

第一个.then用于返回结果的 JSON 对象,第二个用于在控制台打印。

2. 使用 Axios 在 React 中获取数据

这用于通过axios向 React 发出请求。它与 Fetch 类似,但是,在这种方法中,我们不需要将数据转换为JSON,而是使用第一个.then,axios 直接获取数据并返回 JSON 对象。Axios语法更简洁,可以减少代码量,并且它包含许多 Fetch API 所不具备的工具和功能。以下是axios 的
使用方法

  • 首先安装axios
$ npm install axios
        or
$ yarn add axios
Enter fullscreen mode Exit fullscreen mode
  • 将其导入到你的项目中
import axios from "axios"

Enter fullscreen mode Exit fullscreen mode
  • 语法如下
useEffect(() => {
  axios.get("https://randomuser.me/api/")
      .then((response) => console.log(response.data));
  }, []);

Enter fullscreen mode Exit fullscreen mode

3. 使用 async / await 语法在 React 中获取数据

Async / await使我们能够移除 .then() 回调,并直接获取异步解析的数据。记住,我们不能在 useEffect 内部创建异步函数。

useEffect(() => {
      getData()
  }, []);

async function getData() {
  const response = await fetch('/movies');
  const result = await response.json();
  console.log(result.data));

}
Enter fullscreen mode Exit fullscreen mode

4. 使用自定义钩子获取数据

代码简洁、语法精简总是好的,你可能会发现反复使用 useEffect 非常繁琐,有时甚至会让很多开发者感到困惑。这里我们提供了一种更清晰的数据获取方式。使用第三个库**react-fetch-hook**可以让我们快速获取数据,并减少重复使用的代码。

  • 首先,我们需要安装 * react-fetch-hook*
$ npm install react-fetch-hook
             or
$ yarn add react-fetch-hook


Enter fullscreen mode Exit fullscreen mode


JavaScript

  • 将其导入到你的项目中
import useFetch from "react-fetch-hook"

Enter fullscreen mode Exit fullscreen mode
  • 以下是我们如何使用它
const {data} = useFetch("https://randomuser.me/api/");
console.log(data);

Enter fullscreen mode Exit fullscreen mode

5. 使用 React 查询库获取 React 中的数据

你可能会认为使用自定义钩子是个好方法,没错!然而,React Query 将使用钩子进行数据获取提升到了一个新的高度。React Query 不仅提供了简单清晰的语法,还提供了状态管理工具来控制数据获取的时间、方式和频率。

  • 首先,安装React 查询
$ npm i react-query
           or
$ yarn add react-query

Enter fullscreen mode Exit fullscreen mode
  • 将其导入到你的项目中
import { QueryClient, QueryClientProvider, useQuery } from 'react-query'

Enter fullscreen mode Exit fullscreen mode
  • 以下是我们如何使用它
import { QueryClient, QueryClientProvider, useQuery } from 'react-query'

 const queryClient = new QueryClient()

 export default function App() {
   return (
     <QueryClientProvider client={queryClient}>
       <Example />
     </QueryClientProvider>
   )
 }

 function Example() {
   const { isLoading, error, data } = useQuery('nameForYourData', () =>
     fetch('https://api.github.com/repos/tannerlinsley/react-query')
.then(response =>
       response.json()
     )
   )

   if (isLoading) return 'Loading...'

   if (error) return 'An error has occurred: ' + error.message

   return (
     <div>
       <h1>{data.name}</h1>
       <p>{data.description}</p>
       <p>{data.subscribers_count}</p>
     </div>
   )
 }
Enter fullscreen mode Exit fullscreen mode

这就是获取数据的全部内容!🎉🎉

感谢您阅读我的文章,希望您发现这篇文章很有用。


欢迎随时通过Twitter与我们联系:)

鏂囩珷鏉ユ簮锛�https://dev.to/zahab/5-ways-to-fetch-api-data-in-react-js-3pfk
PREV
在下一个编程项目之前执行此操作
NEXT
理解 CSS 媒体查询