Redux Toolkit(RTK)は、Redux を今の書き方で扱うための公式ツールセットです。
@reduxjs/toolkit パッケージとして提供され、2026年7月時点の最新版は 2.12 系です。
公式は「新規で素のReduxを書くな」と言っている
ここは推測ではなく、Redux 公式ドキュメントが明確に書いています。
ユーザーには Redux Toolkit(@reduxjs/toolkit パッケージ)を使うことを推奨し、新しい Redux コードで従来の redux コアパッケージを使うべきではない、さらに redux コアパッケージは今も動くが、現在は旧式(obsolete)と考えている という立場です(Why Redux Toolkit is How To Use Redux Today)。
つまり Redux は書く量が多くてつらい という評判の多くは、RTK 以前の書き方の話です。
何が入っているか
configureStore… store の設定。DevTools やミドルウェアが最初から入るcreateSlice… reducer とアクションをまとめて定義。内部で Immer を使うので、見た目は書き換え、実体は不変更新になるcreateAsyncThunk… 非同期処理の前後で状態を更新する定番パターンを引き受けるcreateEntityAdapter… 正規化した一覧データのCRUD用reducerとセレクタcreateSelector… Reselect のメモ化セレクタRTK Query… データ取得とキャッシュまで面倒を見る仕組み(別エントリポイント)
どんな場面で使うか
- 複数画面で共有する状態が多く、更新元も複数ある
- 状態の変化を追跡・デバッグしたい(DevTools でのタイムトラベル)
- チームで書き方をそろえたい
使わない判断も大事
状態が数個で1画面に閉じているなら、React 標準の useState / useContext で足ります。
グローバルな状態が少し必要なだけなら Zustand のような軽量ライブラリの方が学習コストは低いです。
また、扱いたいのがサーバーから取ってきたデータのキャッシュだけなら、状態管理ライブラリではなく RTK Query や TanStack Query のようなデータ取得ライブラリが本来の担当です。とりあえず全部 Redux に入れる は今は推奨されません。