Reactjs с redux, Apollo + graphQL

Это вопросы, основанные на мнениях. Нужно одно предложение.

Правильно ли в Reactjs использовать redux для управления состоянием, а для вызова API использовать Apollo + GraphQL?


person RIYAJ KHAN    schedule 21.02.2018    source источник


Ответы (3)


Это, безусловно, возможно и естественно. Мы используем ту же настройку, и мы обнаружили, что нам больше не нужно много использовать Redux.

Раньше мы использовали Redux для хранения наших ответов API (данных), но теперь Apollo управляет этим за нас.

Таким образом, наше хранилище Redux теперь используется только для фактического состояния пользовательского интерфейса (например, состояния маршрутизации, пользовательских настроек для определенных представлений, независимо от того, включено ли что-то или нет и т. Д.).

Все данные теперь извлекаются Apollo и хранятся в собственном внутреннем хранилище Redux, которое он использует в качестве кеша. Это отлично работает и прекрасно отделяет состояние пользовательского интерфейса от состояния данных.

person batjko    schedule 21.02.2018

Я предлагаю Apollo GraphQl, потому что у него много преимуществ:

Устранение шаблонов. Больше никаких создателей действий, асинхронной обработки и водопадов запросов. Просто запросите нужные данные с помощью запроса GraphQL, и он появится.

Проверка в стеке. Выявление критических изменений в вашем API до их развертывания и статическая проверка получения данных на всех ваших интерфейсах.

Изучите использование API. Узнайте, как используются ваши серверные ВМ, с детализацией от поля к полю. Легко находите и устраняйте «горячие точки» производительности.

Исключите сложность из клиента. Поместите вычисляемые поля, преобразования данных и логику безопасности в свой API, чтобы вашим интерфейсам не приходилось каждый раз заново реализовывать их.

Постепенно развивайте свой API. Добавляйте поля в GraphQL по ходу работы и отказывайтесь от старых полей, когда они вам больше не нужны. Имитируйте некоторые или все свои API и параллельно создавайте интерфейс.

Повышение производительности. Получайте именно те данные, которые вам нужны, не больше и не меньше. Повысьте производительность с помощью кэширования GraphQL и оптимизации всего стека.

Для получения дополнительной информации прочтите документ GrapQl Apollo https://www.apollographql.com/docs/

person Community    schedule 29.03.2018

Вы должны различать состояние просмотра (например, поле поиска, всплывающее окно, переключение) и состояние данных (например, удаленный API). В то время как Apollo в основном используется для состояния данных, локальное состояние Redux / MobX / React используется для состояния просмотра когда используется в сочетании с Apollo Client. Если эти решения не используются с Apollo Client, эти решения также можно использовать для состояния удаленных данных. Однако клиент Apollo представил apollo-link-state, который можно использовать для местного состояния просмотра тоже.

  • Если ваше приложение управляется исключительно удаленными данными и использует серверную часть GraphQL, Apollo Client может быть достаточным для вашего приложения.

  • Если у вас есть несколько состояний просмотра в вашем приложении, добавьте в React управление локальным состоянием.

  • Если у вас несколько или много состояний просмотра, используйте Redux или MobX для своего состояния просмотра или попробуйте apollo-link-state.

person Robin Wieruch    schedule 22.04.2018