Reduxメモ

Redux: Fluxの概念を拡張したstate管理ライブラリ

・Store: アプリの状態(state)とロジックを保持
・Reducer: Storeが保持する状態を変化させる関数
・Action: 状態変化を起こすメッセージオブジェクト

補足)
・FluxにはDispatcherの概念があるが、こちらには無い

以下のような感じで利用。
react-reduxを利用すると、subsribeで変更検知して状態変化、をReactにバインディングできる。結果、Storeの変化でViewも更新される。

import { createStore } from 'redux';

const initialState = {
  tasks: []
};

function tasksReducer(state = initialState, action) {
  switch (action.type) {
    case 'ADD':
      return {
        ...state,
        tasks: state.tasks.concat([action.payload.task])
      };
    default:
      return state;
  }
}

function onChangeStore() {
  console.log(store.getState());
}

const addTask = (task) => ({
  type: 'ADD',
  payload: { task }
});

const store = createStore(tasksReducer);
store.subscribe(onChangeStore);
store.dispatch(addTask("Learn Redux"));

参考
qiita.com