reduxを導入することでcomponent間のpropsのバケツリレーが不要になり、global stateとして一元管理できるようになる

reduxはおおまかに分けると「store」、「actions」、「reducer」、「subscriber」という要素でできている
このイメージを頭に入れた上でそれぞれの要素をシンプルに作成してみる
まずは、storeの作成
reduxにより提供されるcreateStoreメソッドで作成する

しかし、この状態ではstoreは不完全である
storeとreducerは非常に関係の深い関係があり、storeのinitializeにはreducerが必要不可欠
reducerの作成
reducerは引数に古いstateとaction(のちに作成する)を受け、新しいstateを返すpureなfunctionである

このreducerをcreateStoreの引数にセットすることでstoreが完成する

↑storeのもつgetStateメソッドで最新のstateを取得できる
storeは文字通りglobal stateを保管する場所として機能し、各コンポーネントはstoreによりstateを共有することができるようになる(propsをバケツリレーしなくても済む)
次回はreducerの引数に渡されていたactionの作成