ReactJS 中使用 axios 傳送 HTTP 請求


在本文中,我們將學習如何在 React 應用中使用 **axios** 傳送和接收 HTTP 響應。

為什麼要使用 axios?

  • 自動將響應轉換為 JSON 格式

  • 易於使用且更安全

  • 設定全域性 HTTP 攔截器

  • 同時請求

安裝模組

npm install axios

yarn add axios

**npm** 是管理 React 包的節點包管理器,但 **yarn** 更安全、更快且更輕量。

傳送 GET 請求

https://jsonplaceholder.typicode.com/todos/1

**Jsonplaceholder** 是一個用於學習傳送請求過程的模擬 API。

示例

App.jsx

import React, { useEffect, useState } from 'react';
const App = () => {
   const [data, setData] = useState(null);
   const [fetchData, setFetch] = useState(false);

   useEffect(() => {
      if (fetchData) {
         axios.get('https://jsonplaceholder.typicode.com/todos/1')
.then((res) => setData(res.data.title));
      }
   }, [fetchData]);
   return (
      <>
         <h1>{data}</h1>
         <button onClick={() => setFetch(true)}>Fetch Data</button>
      </>
   );
};
export default App;

在上面的示例中,我們向 **jsonplaceholder** 傳送 GET 請求,並在接收到響應後立即將資料插入狀態。

axios 傳送的響應

輸出

這將產生以下結果。

傳送 POST 請求

https://jsonplaceholder.typicode.com/todos/1

**Jsonplaceholder** 是一個用於學習傳送請求過程的模擬 API。

示例

App.jsx

import React, { useEffect, useState } from 'react';
import './App.css';
const App = () => {
   const [data, setData] = useState(null);
   const [val, setVal] = useState('');
   const [fetchData, setFetch] = useState(false);

   useEffect(() => {
      if (fetchData) {
         const payload = {
            method: 'POST',
            body: JSON.stringify({ title: val }),
         };
         axios.post('https://jsonplaceholder.typicode.com/posts', payload)
.then((res) => setData(res.data.id));
      }
   }, [fetchData]);
   return (
      <>
         {data && <h1>Your data is saved with Id: {data}</h1>}
         <input
            placeholder="Title of Post"
            value={val}
            onChange={(e) => setVal(e.target.value)}
         />
         <button onClick={() => setFetch(true)}>Save Data</button>
      </>
   );
};
export default App;

在上面的示例中,我們向 jsonplaceholder 傳送 POST 請求,並在請求體中包含輸入欄位的值,並相應地顯示響應。

axios 傳送的響應

輸出

這將產生以下結果。

更新於:2021年3月18日

699 次瀏覽

啟動您的 職業生涯

完成課程後獲得認證

開始學習
廣告