Я думаю, что вы хорошо здесь отметили: «С Redux мы должны писать действия, типы и действия диспетчеризации на основе ответа, полученного от побочного эффекта, и устанавливать данные в хранилище с помощью редукторов, что делает Apollo. Клиент автоматически. "
Для побочных эффектов Redux является обязательным, а Apollo - декларативным. Декларативный код обычно короче, поскольку вы делегируете logi c в библиотеку / framework.
Даниэль Рарден (David Rearden) подчеркнул, что сравнение Redux и клиентского кэша Apollo похоже на яблоки и апельсины. Яблоки и апельсины здесь - это различные типы состояний , в частности удаленные и локальные состояния. К сожалению, Redux побуждает нас обрабатывать все состояния одинаково.
Я бы использовал кеш Apollo для состояния, которое необходимо извлекать, обновлять и изменять на сервере. Я хотел бы воспользоваться более легкими инструментами, такими как React's Context API, для предотвращения детализации, глобального состояния приложения и хуков для бизнес-логики c (например, useReducer / useState).
Сложная часть - это когда удаленное состояние и локальное / глобальное состояние приложения. Поэтому я бы тщательно определил, как они взаимодействуют