React Hooks早わかり(useEffect編)

投稿日 : 2022-03-29

更新日 : 2022-04-03

useEffectとは

公式リファレンス
https://ja.reactjs.org/docs/hooks-reference.html#useeffect
useEffect に渡された関数はレンダーの結果が画面に反映された後に動作します。

import { VFC, useState, useEffect } from "react";

export type Photo = {
  albumId: number;
  id: number;
  title: string;
  url: string;
  thumbnailUrl: string;
};

export const fetchPhoto = async () => {
  const res = await fetch("https://jsonplaceholder.typicode.com/Photos");
  const photos = (await res.json()) as Photo[];
  return photos;
};

const UseEffectSample: VFC = () => {
  /** state */
  const [Photos, setPhotos] = useState<Photo[]>([]);

  /** effect */
  useEffect(() => {
    fetchPhoto().then((photos) => setPhotos(photos));
  }, []);

  return (
    // return jsx
  );

useEffect の第 2 引数

  • 空の配列[] → Mount 時のみ第一引数の関数が実行される。(Vueで言うところのmounted)
  • [特定の値] → 特定の値の変化を検知した際に実行される。(Vueで言うところのwatch)