Reduxの仕組みをわかりやすく解説
Reactコンポーネント間でのデータの受け渡しは、しばしば「伝言ゲーム」のように感じられます。親から子へ、そして孫へとデータを渡していくことになります。アプリの規模が大きくなるにつれて、この管理は煩雑になっていきます。
Reduxはこれを解決します。Reduxは「信頼できる唯一の情報源(single source of truth)」を構築します。データが散在するのではなく、すべてが1つの中心的な保管庫に集約されます。
Reduxを理解するために、コーヒーショップを例に考えてみましょう。
The Store(保管庫) これはショップの台帳です。豆の在庫数、注文、スタッフのリストなどを記録します。
The Action(注文)
客がカウンターから勝手にラテを手に取ることはありません。まず注文をします。Actionとは、「何が起きたか」を記述するシンプルなオブジェクトです。
例: { type: 'ADD_TODO', text: 'Buy Milk' }
The Reducer(バリスタ) 台帳を更新できるのはバリスタだけです。バリスタは「現在の状態(state)」と「新しい注文」を受け取り、それをもとに台帳の新しいバージョンを作成します。
The Dispatch(レジ係) レジ係は注文を受け取り、それをバリスタに渡します。Dispatchとは、ActionをStoreに送るための関数です。
なぜReduxを使うのか?
アプリが拡張され、ユーザープロフィールやショッピングカートなどが含まれるようになると、中央のStoreがあることでデバッグが容易になります。Actionの履歴を確認することで、「いつ」「なぜ」データが変更されたのかを把握できます。これは、ウェブサイトにおける「フライトレコーダー」のような役割を果たします。
まとめ:
• Action: 変更の内容を記述したメモ。 • Reducer: 変更を実行するロジック。 • Dispatch: Actionをロジックへと送るトリガー。
出典: https://dev.to/code_with_aravind/how-redux-works-in-simple-terms-1pkp