Reactを使ったアプリケーションでは、データの取得や処理に時間がかかる場合があります。その際、ユーザーに待機中であることを示すためにローディングスピナーを表示することがあります。今回は、React Hooksを使って簡単にローディングスピナーを実装する方法について紹介します。

useStateを使ったローディングスピナーの実装

まず、useStateを使ってローディング状態を管理するためのstateを定義します。

import React, { useState } from 'react';

function App() {
  const [loading, setLoading] = useState(false);

  return (
    <div>
      {loading ? <div>ローディング中...</div> : <div>コンテンツが表示されます。</div>}
    </div>
  );
}

export default App;

このように、useStateを使ってloadingというstateを定義し、初期値をfalseに設定しています。そして、ローディング中はloadingがtrueになるように条件分岐を行い、ローディング中のメッセージを表示します。

useEffectを使ったローディングスピナーの実装

次に、useEffectを使ってAPIからデータを取得する際にローディングスピナーを表示する方法について紹介します。

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

function App() {
  const [loading, setLoading] = useState(false);
  const [data, setData] = useState([]);

  useEffect(() => {
    setLoading(true);
    fetchData().then((data) => {
      setData(data);
      setLoading(false);
    });
  }, []);

  const fetchData = async () => {
    const response = await fetch('https://example.com/data');
    const data = await response.json();
    return data;
  };

  return (
    <div>
      {loading ? <div>ローディング中...</div> : <div>{data}</div>}
    </div>
  );
}

export default App;

このように、useEffectを使ってAPIからデータを取得する際に、fetchData関数内でローディング状態をtrueに設定し、データを取得したらローディング状態をfalseに戻します。そして、ローディング中はloadingがtrueになるように条件分岐を行い、ローディング中のメッセージを表示します。

まとめ

React Hooksを使って簡単にローディングスピナーを実装する方法について紹介しました。useStateを使ってローディング状態を管理し、条件
分岐で表示する方法や、useEffectを使ってAPIからデータを取得する際にローディングスピナーを表示する方法を紹介しました。これらの方法を組み合わせることで、Reactアプリケーションでスムーズなユーザー体験を実現することができます。

ただし、ローディングスピナーを使いすぎると、ユーザーにとって不快な体験となる場合があります。適切なタイミングで表示するように注意しましょう。

以上が、React Hooksを使ったローディングスピナーの実装方法についての紹介でした。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です