reducerは現在のstateとactionを受け取り新しいstateを返すpureなfunctionである。

actionオブジェクトの作成

actionオブジェクトは必ずtypeというkeyを持つオブジェクトとして定義しなければならない

type以外にもreducer内で処理する際に必要なpayloadをセットしても良いが、type属性はマストでセット

storeの持っているdispacth関数でactionをreducerにdispatchする

reducerの引数に自動的に渡るactionオブジェクトを使って、type属性で条件ワケして新しいstateを返す。

しかしここで注意なのが、global stateをmutableiに操作しないこと(以下はダメな例)

 

まず、古いstateのcloneを作成し、更新部分のみをupdateする

ES6の文法で用いるspread-operatorを使うことでかんたんにstateのcloneを作成できる

 

subscribeはstateがupdateされるたびに自動的に呼び出され、コールバック内の処理が実行される