redux-toolkitを食わず嫌いしないでみる
食わず嫌いしている理由
「あくまで選択肢の一つ」というのは理解出来る
しかしRedux Toolkitが「Style Guideとして推奨されている」という事実にはあまり好みな感情を持っていない
slicerの挙動がちょっと・・・
とはいえこれも「starter kit 」という名前のときは強い抵抗があったが、toolkitと言われるとだいぶ落ち着いた感じがあある
=初手でそういう学び方をするのが良いのか?
食わず嫌いを辞めた理由
toolkitという名前になって立場が明確になったから
starter-kitのときは正直どこに着地するか見えなかった
結局reduxのままあがけばあがくほどredux-toolkitに寄っていく
immerが結局immutability補助ツールとして現状落とし所になってくる
色々考えてみると、確かにhooksの台頭によってReduxが単体として利用するツールとしては利点がかなり薄くなっているように感じる。
使った感想
Pros
確かに便利さはある。
toolkitのレールに乗っている上であれば、型に関する恩恵がかなり大きい
createThunkAction / createEntityAdapterが出てきたのはかなり良い
特に非同期処理に手が入ったのはかなり歓迎されるべきこと
Cons
createSliceでreducerを記述すると、useReducerとの互換性が死ぬ
createAsyncThunkが引数としてpureじゃないobjectを受け取れない
createSlice / extraReducerとactionの依存性。actionを切り出しづらい
Tips
TypeScript利用は割と癖ある
dispatchやselector
actionをreducer側で利用するときは[someAction]ではだめで[someAction.type]とする必要がある
creatSliceの型定義はinitialState : { ...someState } as SomeStateとかするのが妥当。
createSlice<State ... >のやり方は難しい
caseReducerとは・・?
ほとんどテスト用途考えて良い?