ReactにAxios導入してみる サンプルソースあり

#JavaScript
writtdden by 銀太

現在個人的に大好きなNBAの決勝リーグが始まっております。
個人的にはミネソタティンバーウルブズを推してます、アンソニー・エドワーズ選手カッコ良すぎます。
日本人の八村塁選手もロサンゼルスレイカーズの一員として挑んでおりますね、
めっちゃ応援しています、頑張れ八村塁!!
そして、渡邊雄太選手お疲れ様でした!
スポーツマンって本当に格好いい。。

さてこんな話はさておき、今回はReactにAxiosを導入する方法を説明出来ればと思います!

Axiosとは

Axiosは、ブラウザやNode.jsで動作するPromiseベースのHTTPクライアントです。このクライアントは、HTTPリクエストを行い、レスポンスを取得するために使用されます。Axiosは、簡潔で使いやすいAPIを提供し、開発者がHTTP通信を行う際に手間を省きます。

Axiosの主な特徴の1つは、PromiseベースのAPIです。これにより、非同期処理を簡潔に記述でき、コールバックヘルやネストしたコードを回避できます。さらに、Axiosは自動的にJSONデータのシリアル化やデシリアル化を行い、データの送受信を容易にします。

また、Axiosは多くのプラットフォームで利用可能であり、ブラウザやNode.jsなどの環境でシームレスに動作します。さらに、リクエストのキャンセルやクッキーのサポートなど、さまざまな機能を提供しています。

Axiosは、Webアプリケーションの開発やAPI連携など、さまざまなシナリオで広く使用されています。その使いやすさと信頼性から、多くの開発者によって採用されています。

Reactアプリを作成

まずは下記コマンドにてReactアプリを作成しましょう!

npx create-react-app react-axios-app

上記のコマンドでは、”react-axios-app”という名前のReactアプリケーションを作成していますが、
適宜プロジェクト名を変更してください!

Reactアプリケーションのディレクトリに移動して、以下のコマンドを実行してアプリケーションを起動します。

cd react-axios-app

npm start

上記のコマンドを実行すると、ブラウザが自動的に起動し、Reactアプリケーションがローカルで実行されます。デフォルトではhttp://localhost:3000 でアプリケーションが実行されます。
下記画面が表示されていればOKです!

さて次は実際にaxiosを導入していきましょう!

Axiosの導入

まずは、AxiosをReactプロジェクトにインストールします。以下のコマンドを実行して、Axiosをインストールします。
nodeのバージョンは最新にする様にして下さい!

古いバージョンだとインストールが失敗することがあります。

npm install axios

Yarnを使用している場合は、以下のコマンドを実行します。

yarn add axios

エラーが出ずにインストール出来ればOKです!

さぁ次は実際にAxiosをプロジェクトにセットアップしていきましょう!

Axiosのセットアップ

Axiosを使用するためには、必要に応じてセットアップを行う必要があります。
通常、ReactのコンポーネントでAxiosを使用する場合は、importステートメントを使用してAxiosをインポートします。

また、他にもuseEffectとuseStateを併せてインポートして下さい。
useEffectとuseStateReact hooksで用意されているものの一つになります。
React hooksについてはまた今度別記事で紹介出来ればと思います!
すぐに知りたい方は下記リンクから見てみて下さい!
React hooksを基礎から理解する (useState編)
React hooksを基礎から理解する (useEffect編)

実際に利用したい画面に対して下記ソースを記載して下さい!

import React, { useState, useEffect } from 'react';
import axios from 'axios';

Axiosをセットアップしたら、HTTPリクエストを行う準備が整いました。以下は、GETリクエストを行う例です。

useEffect(() => {
 const fetchData = async () => {
  try {
   const response = await axios.get('https://jsonplaceholder.typicode.com/users');
   setUserData(response.data);
   setLoading(false);
  } catch (error) {
   console.error('データの取得に失敗しました:', error);
  }
 };


 fetchData();
}, []);

上記ではuseEffectとuseStateを利用していますが、useEffectとuseStateReact hooksで用意されているものの一つになります。
React hooksについてはまた今度別記事で紹介出来ればと思います!

それでは途中まで記載したソースは下記になります!

import React, { useState, useEffect } from 'react';
import axios from 'axios';


const App = () => {
 const [userData, setUserData] = useState(null);
 const [loading, setLoading] = useState(true);


 useEffect(() => {
  const fetchData = async () => {
   try {
    const response = await axios.get('https://jsonplaceholder.typicode.com/users');
    setUserData(response.data);
    setLoading(false);
   } catch (error) {
    console.error('データの取得に失敗しました:', error);
   }
  };


  fetchData();
 }, []);
 console.log(userData);
 return (
  <div>
   <h1>ReactにAxiosを導入したい</h1>
  </div>
 );
};


export default App;

では実際に画面でデータが取れているか確認しましょう!

ディベロッパーツール開いて確認しましょう!
これでデータ取得出来ているところまで確認出来たので次は実際に画面に表示してみましょう!
ReactのDOM要素に下記内容を記載してみましょう!
<ul>
 {userData.map(user => (
  <li key={user.id}>
   <strong>{user.name}</strong> - {user.email}
  </li>
 ))}
</ul>

Reactアプリなどでは配列などをループして画面に表示する際は基本的にmap関数を使います!

さぁそれでは実際に画面に表示されているか確認しましょう!

これで表示出来ましたね!!

無事にAPI通信が完了させることが出来ました!

完成系のソースは下記のものになります!

import React, { useState, useEffect } from ‘react’;
import axios from ‘axios’;
const App = () => {
 const [userData, setUserData] = useState(null);
 const [loading, setLoading] = useState(true);


 useEffect(() => {
  const fetchData = async () => {
   try {
    const response = await axios.get('https://jsonplaceholder.typicode.com/users');
    setUserData(response.data);
    setLoading(false);
   } catch (error) {
    console.error('データの取得に失敗しました:', error);
   }
  };


  fetchData();
 }, []);
 console.log(userData);
 return (
 <div>
  <h1>ユーザー情報</h1>
  {loading ? (
   <p>Loading...</p>
  ) : (
  <ul>
   {userData.map(user => (
    <li key={user.id}>
     <strong>{user.name}</strong> - {user.email}
    </li>
   ))}
  </ul>
  )}
 </div>
 );
};


export default App;

最後に

以上でReactにAxiosの導入する手順の紹介は以上となります!
API通信の際はAxiosを使用すると直感的で使用しやすいかと思います!

他にもReactアプリに関する記事書いているので良かったらどうぞ!
React+TypeScriptの環境構築 Windows

それでは皆さん良い開発ライフを!!!!

Favorite