【React.js/Next.js】Redux Toolkit 完全入門

React.js / Next.js

Redux Toolkit って、どんな機能があるのかな?

今回は、React.js の 状態管理 の中でも代表的な Redux Toolkit について、基本的な考え方から実際の使い方、実務でよく使われるユースケースまでをわかりやすく解説します。

Redux Toolkit とは?

Redux Toolkit とは、React.js アプリの中で ログインしているユーザー情報 や、アプリ全体で共有したい設定情報 など、複数の画面やコンポーネントから使われる状態(データ)を、1か所にまとめて管理するための仕組み です。

なぜ Redux Toolkit が必要なの?

React.jsuseState は便利な仕組みですが、アプリが大きくなると 同じ状態を複数のコンポーネントで使ったり、props を何階層にも渡したり と管理が難しくなってしまいます。

こうした問題を解決するために、状態をアプリ全体で共有・管理できる仕組み を提供するのが Redux Toolkit です。

なお、Redux Toolkit は従来の Redux をより簡単に使えるようにした 公式ツールキット です。
従来の Redux は設定やコード量が多く扱いづらいこともありましたが、Redux Toolkit ではシンプルに書けるよう改善され、簡単に使えるようになっています。

Redux Toolkit で管理する状態(データ)

Redux Toolkit は、主に アプリ全体で共有したい状態 を管理するために使用されます。
そのため、コンポーネント単体で完結する状態 ではなく、複数の画面やコンポーネントから参照・更新される状態が対象 となります。

Redux Toolkit状態(データ)を管理するかは、アプリ全体で共有する必要があるかどうかで判断します。

具体的には、次のような 状態(データ)が該当します。

  • ログインしているユーザー情報
  • モーダルやダイアログの表示状態
  • 選択中のタブやフィルター
  • アプリ全体で共通の設定情報

Redux Toolkit のインストールと基本的な使い方

それでは、ここから実際に Redux Toolkitインストール したり、コンポーネントで利用する基本的な流れを見ていきましょう。

Redux Toolkit と React-Redux のインストール

Redux Toolkit および React-Reduxインストール します

ユースケース①: カウンター

Slice の作成

カウンター状態(データ)の初期値処理内容 を登録する

Store に Slice の登録

上記の Slice を呼び出せるように、Store に登録する

Provider の設定

上記の Storeアプリ上状態管理 ができるように、Provider を設定する

状態(データ)の取得・表示・更新

アプリ上 で、状態(データ)の取得・表示・更新 を確認する

処理内容

  • +” ボタンで、+1 ずつカウントアップ される
  • ” ボタンで、-1 ずつカウントダウン される
  • 追加” ボタンで、入力値の +3 ずつカウントアップ される
  • 入力値を ”5” に変更後、”追加” ボタンで、入力値の +5 ずつカウントアップ される

ユースケース②: ログインのユーザー情報

Slice の作成

ユーザー状態(データ)の初期値処理内容 を登録する

Store に Slice の登録・追加

上記の Slice を呼び出せるように、Store に登録する

Provider の設定 ※ 変更無し

上記の Storeアプリ上状態管理 ができるように、Provider を設定する

データの取得・表示・更新

アプリ上 で、状態(データ)の取得・表示・更新 を確認する

処理内容

  • ログイン” ボタンのクリックで、 ”こんにちは、山田 太郎さん” と ”ログアウト” ボタンが表示される
  • ログアウト” ボタンのクリックで、入力欄 と”ログイン” ボタンが表示される
  • 入力欄 に ”テスト 花子”と入力後、”ログイン” ボタンのクリックで、 ”こんにちは、テスト 花子さん” と ”ログアウト” ボタンが表示される

まとめ

Redux Toolkit について、いかがでしたでしょうか?

Redux Toolkit は、React.js アプリで 複数の画面やコンポーネントから使用される状態(データ)を1か所にまとめて管理するための仕組み のことで、 ログイン中のユーザー情報 や、アプリ全体で共有したい設定情報 の管理などに向いています。

まずは基本的な使い方をしっかり押さえ、複数の小さな コンポーネント で試しながら、少しずつ Redux Toolkit に慣れていきましょう。

公式サイト

Redux Toolkit

tachu × tachu

Laravel / React フルスタックエンジニア

Webエンジニア歴15年、フリーランス歴8年で、PHP / Laravel を中心に、
React.js / Vue.js を用いたフルスタックでのWeb開発をしています。

技術記事は Laravel / React / Web開発 を中心に書いています。

Webサービスの開発、既存システム改善、機能追加、技術相談、小規模な開発など、お気軽にご相談ください。

React.js / Next.js
シェアする

コメント

タイトルとURLをコピーしました