React: Redux Toolkit
Теория: Механизм Entity Adapter
Значительная часть любого веб-приложения сводится к операциям над сущностями — добавлению, изменению, удалению и чтению. Например, на Хекслете в каждом уроке есть раздел обсуждений, в котором студенты задают вопросы. Эта часть фронтенда работает с постами, комментариями, авторами и лайками. Благодаря нормализации данных, код по обработке этих сущностей выглядит идентично:
Точно такой же код будет использоваться и для всех остальных сущностей. Можно ли как-то переиспользовать его? Конечно! Redux Toolkit делает это с помощью механизма Entity Adapter. Он предоставляет набор готовых редьюсеров и селекторов для основных операций над сущностями. Сначала рассмотрим пример:
Буквально четыре строчки в редьюсерах, и мы получили полноценную реализацию стандартных операций над пользователем. Но это еще не все. Кроме готовых редьюсеров, Entity Adapter дает нам набор готовых селекторов для извлечения данных из хранилища. Для этого их нужно сгенерировать и экспортировать из файла со слайсом:
Изучим пример использования в приложении:
Кроме selectAll(state), мы получаем:
selectIds(state)– возвращаетidsselectEntities(state)– возвращаетentitiesselectTotal(state)– возвращает общее количествоselectById(state, id)– возвращает конкретную сущность илиundefined, если ничего не найдено




