TechDive Blog

IT未経験者でも分かりやすく学べる技術ブログ

ReactHooksこれだけでOK!

サムネイル

1. React Hooksとは?

Reactの登場によりWebフロントエンド開発が非常効率的なものになりました。

Reactのメリットや特徴はReactのはじめ方で解説しています。

React Hooks(フック)は、Reactで「データの変更」や「画面のライフサイクル」などを扱うための便利な道具です。

Reactはもともと「クラス」で定義するクラスコンポーネントでしか使えない機能がありました。

しかし、Hooksを使うことで関数ベースでもっと簡単に書けるようになりました。

なぜHooksを使うのか?

  • シンプルなコード:従来のクラスコンポーネントと比べて、コードが読みやすくなります。
  • 再利用性:カスタムHooksを使えば、状態管理やロジックを簡単に再利用できます。
  • 学習コストの軽減:関数コンポーネントだけでReactのほとんどの機能を使えます。

2. よく使われるReact Hooks

Reactでの代表的なHooksを紹介します。

以下で紹介するHooksは紹介されているブログも多く、実務の現場でも見かけるHooksなので知っておくと開発業務において有利になります。

useState

  • できること

状態(state)の管理を行います。

例) カウンターや入力フォームの値をチェックする時などです。

useStateの使い方で紹介しているので参考にしてください。

useEffect

  • できること

画面が表示されたときや、あるデータが変わったときに「何かする」動きを追加します。

例) APIからデータを取得したり、タイマーを設定したりする処理です。

useEffectの使い方で紹介しているので参考にしてください。

useContext

  • できること

コンポーネント間でデータを簡単に共有できるようにするためのHooksです。

例) ログインしているユーザー情報をアプリ全体で使いたいときに便利です。

useContextの使い方で紹介しているので参考にしてください。

useReducer

  • できること

複雑な状態管理を簡単に行えます。

例) 買い物リストアプリで「商品を追加」「削除」「更新」をまとめて管理したいときなど。

useReducerの使い方で紹介しているので参考にしてください。

useMemo

  • できること

計算結果を「覚えておく」ことで、同じ処理での再計算の手間を減らします。

例) 大きなデータを扱うアプリで、大規模な計算ロジックの必要な部分だけ再計算する場合。

useMemoの使い方で紹介しているので参考にしてください。

useCallback

  • できること

関数を「覚えておく」ことで、再作成を避けます。(useMemoは計算の結果、useCallbackは関数自体)

例) コンポーネントが再描画されても、特定の関数が毎回新しく作られないようにする。

useCallbackの使い方で紹介しているので参考にしてください。

useRef

  • できるもの

コンポーネントの「直接操作」や「値の保存」に使います。

例) 入力フォームにフォーカスを当てたり、以前の値や初期値を覚えておきたいとき。

useRefの使い方で紹介しているので参考にしてください。

3. これだけ覚えとけば大丈夫

ここまでで、「ReactHooks概要」、「メジャーなHooks」について紹介しました。

この章ではじゃあ実際「どれを」「どのくらい」覚えておいたら「実際の業務」で対応できるかについてお話しします。

結論として、useStateとuseEffectだけ抑えておくとほぼ全てのサービスは実現可能と考えています。

Reactとは、画面上で発生する要素をいかに効率的かつ簡潔にコントロールできるかに特化した技術であると考えています。

その上で上記2つのHooksは最も簡単にReactの本質を再現したものだと考えています。

実際に他のHooksもuseStateやuseEffectの拡張のようなイメージになり、ほとんどのサービスにおいてuseStateおよびuseEffectで対応できました。

もちろん規模の大きさがかなりの大規模になると他のHooksを使ってもいいかもしれませんが、これからエンジニアとして開発現場に入る方にとってはuseState/useEffectをまずは使いこなすことを徹底すればいいと思います。

例外としてuseContextがありますが、基本propsのバケツリレーで対応できたり、システム全体の設計で無駄な受け渡しを防止するようアーキテクチャーレベルから考えていく領域になると思います。

この話はかなり発展的なので今後上級者編の記事で紹介します。

この記事を書いた人

プロフィール画像

Tさん

別業界から転職1年で
Webフルスタックとして活動中


これからエンジニアになりたい!

駆け出しエンジニアが最短で
成長できる方法を発信

関連記事

プロフィール画像

Tさん

noteロゴ

note

Xロゴ

X

「はじめの一歩」をサポートする
プログラミング学習サービス
「TechDive」の運営

最新記事

サムネイル

ReactHooksこれだけでOK!

サムネイル

クライアントとサーバーの基礎