Для каждого списка в Redux хранятся данные, флаги загрузки и время последнего запроса
В приложении 25 экранов со списками с сервера. Для каждого в Redux-сторе лежат items, isLoading, error, lastFetchedAt, написаны экшены начала, успеха и ошибки, логика «не перезапрашивать чаще минуты» и ручная инвалидация после изменений. Треть багов — устаревшие данные после мутаций.
Какое архитектурное изменение снимет большую часть этого кода?
- Отделить серверный стейт в библиотеку кэширования запросов, в Redux оставить клиентский
- Перейти с Redux на Zustand с той же структурой данных
- Вынести флаги загрузки в отдельный слайс общий на всё приложение
- Хранить данные списков в localStorage вместо стора
