intermediate
Redux Toolkit
Используйте slices, configureStore, reducers на Immer, типизированные hooks и современные дефолты Redux.
Redux Toolkit (RTK) — официальный стиль Redux: `configureStore`, `createSlice`, reducers на Immer, типизированные hooks и entity adapters. Меньше boilerplate при сохранении предсказуемого потока данных.
const counterSlice = createSlice({
name: 'counter',
initialState: { value: 0 },
reducers: {
incremented(state) {
state.value += 1;
},
},
});
const store = configureStore({
reducer: { counter: counterSlice.reducer },
});
type RootState = ReturnType<typeof store.getState>;
type AppDispatch = typeof store.dispatch;
Экспортируйте типизированные обёртки `useAppDispatch` и `useAppSelector`. Делите фичи на slice; собирайте в map reducer store.
Компромисс: меньше boilerplate и безопасные дефолты против навязанной структуры и «магии» Immer, скрывающей копирование.
На интервью: что RTK меняет относительно «ручного» Redux; когда хватает slice без RTK Query.
Типовые ошибки: один гигантский slice, отключение serializable check без понимания причины, fetch в slice вместо RTK Query.
Чеклист:
- createSlice на домен фичи.
- configureStore с типизированными hooks.
- Entity adapters для нормализованных списков.
- RTK Query, когда проблема — удалённый кэш.