shiftB
instagramyoutube
運営会社プライバシーポリシー特定商取引法に基づく表記JavaScript学習サイト JS Gym
お問い合わせ
©2025 bubekichi inc.

useEffect 依存配列

0
Threads
受講生ブログ

useEffect 依存配列

icon
kento

useEffect 依存配列

投稿日: 2025年02月22日

学習振り返り
Tips
要約
  • useEffectは副作用を管理するReactのフックで、依存配列を使うことで特定の値が変わったときのみ処理を実行できる。
  • 依存配列により、ログイン状態を監視したり、入力値の変化を捉えたりすることが可能であり、効率的なデータ取得が行える。
  • 特にtokenを依存配列に指定することで、ログインユーザーごとに適切なデータを取得することができる。
音声で記事を再生

はじめに

復習として、useEffect 依存配列内容となります!
間違っていたら、コメントいただけると嬉しです😎


よかったら、以下と一緒に読むことをお勧めします!
https://shiftb.dev/blog/ZdxFVvkaPonE

useEffect 依存配列

useEffectとは、コンポーネントがレンダリングされた後に実行される処理(副作用)を記述するReactのフック(関数)。
例: 「データの取得」「イベント登録」「タイマーの設定」など。

useEffectの基本形

useEffect(() => {
  // ここに副作用(APIの呼び出しなど)を書く
}, [依存配列]); // ← 依存配列を指定


依存配列とは、「この値が変わったときだけ、useEffect内の処理を実行する!」という条件を指定するための配列です。



依存配列の種類と動作

  1. useEffect(() => { ... }, [])
    最初の1回だけ(マウント時)
    → 初回のデータ取得

  2. useEffect(() => { ... }, [token])
    token の値が変わるたびに実行
    → ユーザーのログイン状態を監視

  3. useEffect(() => { ... }, [a, b, c])
    a, b, c のどれかが変わったら実行
    → フォームの入力値を監視

  4. useEffect(() => { ... })
    毎回レンダリング時に実行(推奨されない)
    → コンポーネントの状態を常に監視(非効率)

useEffect 依存配列の使用例

以下のコードでは、
useEffect の依存配列 [token] によって token が変わるたびに処理が実行されるが、
if (!token) return; によって未ログイン時は処理をスキップする。
これにより、ログインしているユーザーのみデータを取得できるようになっています。

useEffect(() => {
    if (!token) return;

    const fetcher = async () => {
      try {
        const response = await fetch("/api/admin/home", {
          method: "GET",
          headers: {
            "Content-Type": "application/json",
            Authorization:  `Bearer ${token}`,
          },
        });

        if (response.ok) {
          const data = await response.json();
          if (data.cafe) {
            setData(data);
          }
        }

        if (!response.ok) {
          throw new Error("Failed to fetch data");
        }
      } catch (error) {
        console.error("Error fetching data:", error);
        setError("データの取得に失敗しました。");
      }
    };

    fetcher();
  }, [token]);

こうすることで、何がいいのか。

  • ログインしているユーザーのみデータを取得できる。

  • ユーザーごとに適切なデータを取得できる。

つまり、ログインユーザーが変わるたびに、最新のデータを取得できる仕様になっているってことです。
ユーザーによって、toke値が違うのでtokenを変えるたびに処理を実行する必要があるからなんです!
いろんなユーザーが正しくデータを取得するのにとても便利なんです!


さいご

今回は、useEffect 依存配列内容でした!
参考になりましたかね?
なったら嬉しいです!😎😎

0

シェア!

Threads
icon
kento
プロフィールを見る
Loading...
記事一覧に戻る
Threads
0

関連記事

TAの使い方とマインドセット

icon
tomoe

Webにおけるデザインのコツ

icon
こーすけ

オリジナルアプリ奮闘記

icon
tomoe

自分情熱大陸 -感謝を伝えたいと思い、書きました-

icon
tomoe

個人開発のモチベーション維持(TAのさえずり)

user
吉本茜

MBTI×学習スタイル 巨匠の私が約4ヶ月で完走した学習戦略

user
吉本茜

最新記事

useState/useRef/useEffectの違いをまとめてみた

icon
あいこ(5期生)

AIが教えてくれるけど理解するのは自分です〜

user
吉本茜

自分情熱大陸シリーズ7

icon
Hiroki

【3章】JavaScript基礎+演習の振り返り

user
小松崎鉄雄

4ヶ月間なにもしていなかった僕が、もう一度前に進めた話

icon
tamu

【1章】事前準備の振り返り

user
小松崎鉄雄