Reduxフレームワークについては、Reducerでstateプロセッサ

838 ワード

レプリカstateを作成する理由
redux-devtoolsでは、reduxの下でreducerによってstateを更新するすべてのレコードを表示することができ、各レコードはメモリ内の特定のstateに対応しており、ユーザーは履歴操作の発生と実行のたびに、その時の特定の状態に遡ることができ、これもredux管理状態を使用する重要な利点の一つである.
レプリカを作成しないと、reduxのすべての操作がメモリ内の同じstateを指すため、各操作の前後、stateの具体的な状態と変化を取得することはできません.レプリカがなければ、redux-devtoolsリストのすべてのstateは最後の操作の結果に取って代わられます.state変更の履歴を遡ることはできません.
コピーを作成するのも、下に伝わるthisを保証するためです.propsとnextPropsは正しい値を得ることができ、前後のpropsの変更状況を利用してrenderコンポーネントが公式に提供されたImmutability Helperツールのupdate()メソッドを用いてデータ更新(リンク)を行う方法を決定することができる.
import update from 'react/lib/update'

function todoApp(state = initialState, action) {
  switch (action.type) {
    case SET_VISIBILITY_FILTER:
      return update(state, {
        visibilityFilter:{
          d:{$set: action.filter}
        }
      })
    default:
      return state
  }
}