Reduxとは?Reactアプリの状態管理ライブラリについて解説

Reduxとは

Redux(リダックス)は2015年に登場した、ウェブアプリケーションのstate(状態)を管理するためのJavaScriptライブラリです。Reduxは、React、Angular、Ember、jQueryなどと併用できますが、特にReactとの相性が良いため「React + Redux」で利用されるのが一般的です。

Reduxは、Reactと併用して利用されるのが一般的です。Reactはシングルページアプリケーション(SPA) 開発に向いていますが、SPAは状態管理が複雑になりがちです。ReactとReduxを併用すると、Reactから状態管理を切り分けられてReact開発がシンプルになります。

描画と状態管理を切り分ける

Reactだけでアプリケーションを作成すると、描画と状態管理を操作してやる必要があります。Reactアプリの中で、描画だけではなく状態管理まで操作しようとすると、プログラムが複雑になってしまう場合があります。

ReactとRedux を併用することで、描画と状態管理を切り分けられるようになります。描画と状態管理を切り分けることで、React側では描画だけに専念すれば良くなり、結果としてReactアプリのプログラムがシンプルになります。

Reduxの特徴

Reduxには、以下の特徴があります。

  • ウェブアプリケーションのstate(状態)を管理するJavaScriptライブラリ
  • 「React + Redux」で利用されるのが一般的
  • ReactとReduxを併用すると、Reactから状態管理を切り分けられてReact開発がシンプルになる
  • Facebookの提唱するFluxの影響を受けている

Reduxは、ウェブアプリケーションのstate(状態)を管理するJavaScriptライブラリです。Reactとの相性が良いため「React + Redux」で利用されるのが一般的です。

ReactとReduxを併用すると、Reactから状態管理を切り分けられてReact開発がシンプルになります。React開発では描画のみに専念すれば良いため、開発がラクになります。

Reduxは、Facebookの提唱するFluxの影響を受けています。Fluxの「JavaScriptのデータの流れを分かりやすくする」コンセプトを引き継いで、拡張して開発されたのがReduxです。

Reduxには、以下の3つの原則があります。3つの原則を守ることで、複雑さを回避して、アプリのstate(状態)管理をシンプルに保つことができます。

  • アプリのすべてのstateは、ひとつのストアに集約して保存される。
  • stateは常に読み取り専用。stateを変更する唯一の方法は、actionオブジェクトを実行すること。つまり、stateを変更する意図をactionオブジェクトによって説明する必要があるということ。
  • actionオブジェクトを通じてstateを変更するときは、reducerを作成して関数で行う。reducerは前のstateを変更してしまうのではなく、actionオブジェクトによって新しいstateを生成して返す。

Reduxを学ぶメリット

Reactは世界的に利用者の多いフレームワークです。React技術者の求人は増加傾向にあります。React開発の現場ではReduxを併用することが多いため、求人要件にReduxが記載されることもあります。

Reduxで求人を検索すると、ウェブアプリケーションのフロントエンド開発などでの募集が確認できます。Reduxのスキル単体ということではなく、React開発ができる技術者を募集するなかで、Reduxも併用できることが望ましいという位置づけです。

Reduxのスキルが求められる職場では、Reactのスキルは必須でしょう。React + Reduxの他に使えることが望ましいスキルとして、Vue.js、Vuex、TypeScriptなどが挙げられています。また、Reactに関連するフレームワークとして、Node.js、Electron、React nativeなどが挙げられることもあります。

Redux公式サイト: https://redux.js.org/