Axiosを使用したReactでのGETおよびPOSTリクエストの例

Axiosは、ReactアプリケーションでのHTTP通信を簡素化するPromiseベースのHTTPクライアントです。APIからのデータ取得やサーバーへのデータ送信などのタスクを効率化します。このガイドでは、ReactでAxiosを使用する方法について、GETリクエストとPOSTリクエストの実例を交えて解説します。
重要なポイント
- AxiosはシンプルなAPIでReactにおけるHTTPリクエストを簡素化します。
- Promiseをサポートし、効率的な非同期処理を可能にします。
- GETリクエストはデータを取得し、POSTリクエストはサーバーにデータを送信します。
ReactでのAxiosのセットアップ
ReactプロジェクトでAxiosを使い始めるには:
-
Axiosのインストール:
npm install axios
-
コンポーネントでのAxiosのインポート:
import axios from 'axios';
GETリクエストの実行
GETリクエストは指定されたエンドポイントからデータを取得します。ReactコンポーネントでAxiosを使用してGETリクエストを実行する方法は次のとおりです:
import React, { useState, useEffect } from 'react';
import axios from 'axios';
function DataFetchingComponent() {
const [data, setData] = useState([]);
useEffect(() => {
axios.get('https://jsonplaceholder.typicode.com/posts')
.then(response => {
setData(response.data);
})
.catch(error => {
console.error('データ取得エラー:', error);
});
}, []);
return (
<div>
<h1>投稿一覧</h1>
<ul>
{data.map(post => (
<li key={post.id}>{post.title}</li>
))}
</ul>
</div>
);
}
export default DataFetchingComponent;
説明:
- 状態の初期化:
useState
でdata
を空の配列として初期化します。 - データの取得:
axios.get
でAPIエンドポイントからデータを取得します。 - Effect Hook:
useEffect
を使用して、コンポーネントのマウント後にGETリクエストが一度だけ実行されるようにします。 - エラー処理: エラーはキャッチされ、コンソールにログ出力されます。
POSTリクエストの実行
POSTリクエストはサーバーにデータを送信し、新しいリソースを作成します。ReactコンポーネントでAxiosを使用してPOSTリクエストを実行する方法は次のとおりです:
import React, { useState } from 'react';
import axios from 'axios';
function CreatePostComponent() {
const [title, setTitle] = useState('');
const [body, setBody] = useState('');
const handleSubmit = (e) => {
e.preventDefault();
const post = { title, body };
axios.post('https://jsonplaceholder.typicode.com/posts', post)
.then(response => {
console.log('投稿作成:', response.data);
})
.catch(error => {
console.error('投稿作成エラー:', error);
});
};
return (
<div>
<h1>投稿作成</h1>
<form onSubmit={handleSubmit}>
<div>
<label>タイトル:</label>
<input
type=""text""
value={title}
onChange={(e) => setTitle(e.target.value)}
/>
</div>
<div>
<label>本文:</label>
<textarea
value={body}
onChange={(e) => setBody(e.target.value)}
/>
</div>
<button type=""submit"">送信</button>
</form>
</div>
);
}
export default CreatePostComponent;
説明:
- 状態の初期化:
useState
でtitle
とbody
を空文字列として初期化します。 - フォーム処理: フォームは投稿のタイトルと本文のユーザー入力をキャプチャします。
- 送信関数:
handleSubmit
はデフォルトのフォーム送信動作を防止し、post
オブジェクトを構築してaxios.post
で送信します。 - エラー処理: エラーはキャッチされ、コンソールにログ出力されます。
よくある質問
はい、AxiosはPUT、DELETE、PATCHなど様々なHTTPメソッドをサポートしており、CRUDオペレーションの全範囲に対応しています。
AxiosはよりシンプルなAPIを提供し、JSONデータを自動的に処理するため、ネイティブのFetch APIと比較してコードを簡素化できます。
Axiosは`CancelToken` APIを使用してリクエストをキャンセルする方法を提供しており、Reactアプリケーションでのメモリリークを防ぐのに役立ちます。
まとめ
AxiosはReactアプリケーションでのHTTPリクエスト処理に威力を発揮するツールです。GETリクエストとPOSTリクエストの実行方法を理解することで、APIとの効率的なやり取りとReactコンポーネント内でのデータ管理が可能になります。
Listen to your bugs 🧘, with OpenReplay
See how users use your app and resolve issues fast. Loved by thousands of developers