Приемущества Redux-toolkit

Набор популярных инструментов по работе с redux, По заверению авторов, разработка с ним, проще, чем с Redux

  • Не нужно создавать много файлов
  • Намного меньше кода
  • Вместо привычных редюсеров и экшенов - слайсы
  • Не нужно создавать actions type
  • Встроенная работа с Thunks
  • Встроенный Reselect (createSelector)
  • Удобная работа с TypeScript
  • Стор можно изменять, а не присылать целый объект как с Immer and Autodux
  • Можно совмещать со старым подходом

Redux Toolkit включает в себя следующие API:

  • configureStore(): обертка для createStore(), упрощающая настройку хранилища с настройками по умолчанию. Позволяет автоматически комбинировать отдельные частичные редукторы (slice reducers), добавлять промежуточные слои или посредников (middlewares), по умолчанию включает redux-thunk (преобразователя), позволяет использовать расширение Redux DevTools (инструменты разработчика Redux)
  • createReducer(): позволяет использовать таблицу поиска (lookup table) операций для редукторов случая (case reducers) вместо инструкций switch. В данном API используется библиотека immer, позволяющая напрямую изменять иммутабельный код, например, так: state.todos[3].completed = true
  • createAction(): генерирует создателя операции (action creator) для переданного типа операции. Функция имеет переопределенный метод toString(), что позволяет использовать ее вместо константы типа
  • createSlice(): принимает объект, содержащий редуктор, название части состояния (state slice), начальное значение состояния, и автоматически генерирует частичный редуктор с соответствующими создателями и типами операции
  • createAsyncThunk(): принимает тип операции и функцию, возвращающую промис, и генерирует thunk, отправляющий типы операции pending/fulfilled/rejected на основе промиса
  • createEntityAdapter(): генерирует набор переиспользуемых редукторов и селекторов для управления нормализованными данными в хранилище утилита createSelector() из библиотеки Reselect

Полезные ссылки