useEffect内でasync/awaitを使用する方法


  1. 非同期関数を作成する方法: まず、非同期関数を作成してから、それをuseEffect内で呼び出す方法です。
import React, { useEffect } from 'react';
const MyComponent = () => {
  useEffect(() => {
    const fetchData = async () => {
      try {
        const response = await fetch('https://api.example.com/data');
        const data = await response.json();
        console.log(data);
      } catch (error) {
        console.error(error);
      }
    };
    fetchData();
  }, []);
  return <div>My Component</div>;
};

この例では、非同期関数fetchDataを作成し、useEffect内で呼び出しています。fetch関数を使用してAPIからデータを取得し、データをコンソールに出力しています。エラーが発生した場合は、コンソールにエラーメッセージを出力します。

  1. useEffect内で即時関数を使用する方法: 非同期関数を別に作成する代わりに、即時関数内で直接非同期処理を実行する方法もあります。
import React, { useEffect } from 'react';
const MyComponent = () => {
  useEffect(() => {
    (async () => {
      try {
        const response = await fetch('https://api.example.com/data');
        const data = await response.json();
        console.log(data);
      } catch (error) {
        console.error(error);
      }
    })();
  }, []);
  return <div>My Component</div>;
};

この例では、useEffect内で即時関数を作成し、その中で非同期処理を実行しています。fetch関数を使用してAPIからデータを取得し、データをコンソールに出力します。エラーが発生した場合は、コンソールにエラーメッセージを出力します。

以上が、useEffect内でasync/awaitを使用する方法とコード例です。これにより、非同期処理を実行しながらコンポーネントの副作用を制御することができます。