Что лучше использовать: Redux Toolkit с слайсами или чистый Redux со стором?
Что проверяют
Знаете ли вы текущую рекомендацию и можете ли объяснить, что именно Redux Toolkit убирает.
Как отвечать
Для нового кода однозначно Redux Toolkit. Это официально рекомендованный способ писать Redux, и в документации самого Redux ручная настройка описана как устаревшая практика.
Что он даёт по сравнению с ручной сборкой:
createSlice: редьюсер, действия и их типы одним объявлением. Пропадает файл с константами, файл с создателями действий иswitchс ручным разбором;immerвнутри: в редьюсере можно писатьstate.items.push(x), а на выходе всё равно получится новый неизменяемый объект. Это убирает целый класс ошибок с потерянной вложенной копией;configureStore: подключеныredux-thunk, инструменты разработчика и проверки, ловящие изменение состояния напрямую и несериализуемые значения в действиях;createAsyncThunk: три состояния запроса без ручных типов;createEntityAdapter: нормализованное хранение списков;- RTK Query: кэш серверных данных, дедупликация запросов, инвалидация по тегам. Часто после него выясняется, что глобальное состояние почти не нужно.
Совместимость полная: Redux Toolkit это надстройка над тем же Redux, и переход делается постепенно, срез за срезом, без переписывания всего разом.
Оговорка по-честному: если задача сводится к передаче темы и текущего пользователя, то ни то ни другое не нужно, хватит контекста, а для серверных данных TanStack Query. Redux уместен, когда есть настоящее общее клиентское состояние со сложными переходами.
Где спотыкаются
Считают Redux Toolkit отдельной библиотекой, несовместимой с Redux.
Думают, что immer меняет состояние на месте.
Кладут в Redux серверные данные вместо кэша запросов.
Держат ручную настройку в новом проекте ради «прозрачности».