返回部落格

在 React 應用程式中使用 HTTP 用戶端 Axios:教學課程

在 React 應用程式中使用 HTTP 用戶端 Axios:教學課程

許多網路應用程式在開發的某個階段,都需要與 REST API 進行介接。對於 React 架構的網路應用程式,我們可以使用 Axios,這是一個輕量級的 HTTP 用戶端,基於 $http 服務(源自 Angular.js v1.x)。其功能類似於 JavaScript’s 原生的 Fetch API.

。Axios 是基於 Promise 的,這讓我們能夠結合 JavaScript 的 asyncawait,以撰寫更具可讀性的同步程式碼。它還支援攔截器和取消請求。此外,它還內建了防止跨站請求偽造的用戶端防護。

在本指南中,我們將展示 如何使用 Axios 來存取熱門的 JSON Placeholder API,並在一個 React 範例應用程式中進行示範。您可以透過此教學深入了解 the JSON format in JavaScript from this tutorial.

先決條件

要完成本指南中示範的步驟,您需要準備以下組件:

步驟 1:在 React 專案中安裝 Axios

Axios 可以直接作為 npm 模組使用。請參考 Axios on npm。我們只需要建立一個 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 函式中,我們阻止了表單的預設行為,並將 state 更新為使用者輸入。當使用 POST 時,它會傳回相同的回應物件。我們可以在 then 呼叫中使用該物件。為了完成 POST 請求,我們正在擷取使用者輸入,並將其與 POST 請求一起加入。它會給我們一個回應。我們使用 console.log 記錄該回應。它應該會在表單中顯示 user 輸入。

接下來,將元件新增至 App.js。完整程式碼應該如下所示:

Axios React code screenshot 4

現在,是時候測試變更了。啟動開發伺服器:

在網頁瀏覽器上檢查變更:

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。

步驟 6:實作 async 和 await

在本節中,我們將看看如何實作 asyncawait 來處理 promise。 await 關鍵字會解析 promise 並傳回 value。我們可以將此 value 指派給變數,以便更方便地使用。

以下是更新後的 PersonRemove.js 程式碼看起來的樣子:

Implement async and await

在這裡,我們已取代了 .then()。一旦 promise 解決(resolved)後,我們將該值儲存在變數 response.

結語

在本教學中,我們探索了使用 Axios 處理 REST API 的各種範例。這些程式碼展示了如何建立 HTTP 請求和處理回應。

有興趣學習更多關於 JavaScript 的內容嗎?請查看我們針對各種 JavaScript 概念和功能所寫的其他初學者指南,例如 日期和時間, 字串操作, 類別,以及 物件.

祝您編寫程式愉快!

author

Hark Labs

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的創意設計師,專注於透過傳統與創新行銷渠道建立一致的企業形象。他擅長將藝術願景與策略行銷相融合,創造具有影響力的品牌敘事。

留言

目前尚無留言。成為第一個留言的人吧。