React でTODOリストを開発しているのですが、
今回は、Reduxを導入してみました。
Redux を導入することで、stateをRedux で管理することができるようになります。
メリットとしては、どのコンポーネントも、このRedux で管理されたstate を参照するようになるので、統一した値を参照することができるようになり、
コンポーネント同士のバケツリレーをする必要がなくなるのですね。
vue.js だったら、vuex ってのを使用しますし、
reactだったら、redux
JSのフレームワークを触るなら、このあたりの知識は必須かなと思っております。
今回は、Reduxにstateを更新できるところまで実装できたらいいかな
ということで、早速実装していく!
index.js
import React from "react";
import { render } from "react-dom";
import { createStore } from "redux";
import App from "./App";
let nextId = 1;
 //action
const addTodo = text => ({
  type: "ADD_TODO",
  id: nextId++,
  todo: text
});
//reducer
const reducer = (state = [], action) => {
  switch (action.type) {
    case "ADD_TODO":
      return [
        ...state,
        {
          id: action.id,
          todo: action.todo
        }
      ];
    default:
      return state;
  }
};
const store = createStore(reducer);
//stateに変更があったら参照できる
store.subscribe(() => {
  console.log(store.getState());
});
//dispatch
store.dispatch(addTodo("test"));
redux を使用する上で重要なのは、
dispatch, action, reducer の考え方
dispatch はaction を呼ぶ
action はreducer を呼ぶ関数
reducer で、reduxで管理しているstate更新
というようなイメージです。
この役割を理解できれば、
あとは、書き方を覚えるだけかな
初見はめちゃ難しく感じるかもですが、
慣れてくると、けっこうシンプルに理解できるようになる気がします。
実際に実務で使用するまでは、ちゃんと理解することはできなさそうだけど
次回は、Reduxに管理したstate をブラウザに表示するところまで実装してみようと思います!

																			
																			
																			
																			
											
						
						
						
												
						
						
						
												
						
						
						
												
										
					
									


