教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。
その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。
redux とは、フロントエンドにおける状態管理に特化したライブラリです。
react だけでもstate
を使えば状態を管理できるのになぜ他のライブラリが必要なのかと思う方もいるかもしれません。そこで、その理由をはじめに説明したいと思います。
すでに redux について勉強したことがある、または実装したことがあるという人は飛ばしていただいても結構です。
小規模なアプリケーションであればもちろん一つの state でも十分に管理することができます。しかし、大きなアプリケーションになると、コンポーネントツリーは肥大化し、状態管理が複雑になります。
もし親コンポーネントで状態を一限管理しようとするととても大きな state になってしまい、状態の更新や取得が複雑になりバグの温床になってしまいます。
またバケツリレーがいたるところで起こってしまうのも管理が大変になり問題です。
また、それぞれのコンポーネントで独自の state を持ってしまうと、他のコンポーネントにその状態を知らせるのが難しくなり複雑化してしまいます。
from https://css-tricks.com/learning-react-redux/
redux を使うことで状態管理にかかる部分をコンポーネントのツリーから分離することができます。煩雑なバケツリレーからの解放(完全に解放されるわけではないが幾分ましになる)やコンポネート間での状態のやりとりが可能になります。
from https://css-tricks.com/learning-react-redux/
redux は flux という概念に基づいて設計されています。flux とは一方向に状態が流れるというという特徴を持っています。また、値を直接変更しないという関数型の特徴も併せ持っています。
from https://codezine.jp/article/detail/10499
今はそういう概念があるんだなぁぐらいの理解で大丈夫です。一通り redux を動かすとこれらがどんなものなのかが実感がわくようになっているはずなので安心して次のステップに進んでください!
次の章では、実際に redux の基礎的な概念を紹介していきます。