Реагировать с клиентами GraphQL

Использование React с GraphQL clients, например Apollo Client, - хорошая идея? Те же результаты я могу достичь с react и новым Context API.

В основном я могу использовать GraphQL API, используя axios или любые другие подобные библиотеки. А для управления состоянием я могу использовать новые Context API от React, что очень просто.

axios.get('localhost://4000?qraphql').then((res)=>{

//do something with the response.
}) 

Есть ли еще какие-то преимущества от Apollo Client. Зачем мне использовать Apollo client, если я могу добиться того же без него. Это поможет мне уменьшить размер моего bundle.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
4
0
1 494
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Клиент Apollo предоставляет массу возможностей помимо простой выборки данных с сервера. Ниже приводится неполный список:

  • Открытая загрузка, ошибка и состояние данных, поэтому вам не нужно создавать дополнительные компоненты с отслеживанием состояния только для асинхронного извлечения данных.
  • Нормализованный уровень кэширования, который позволяет избежать ненужных повторных запросов к вашему серверу.
  • Наблюдаемые запросы, которые позволяют вашему пользовательскому интерфейсу обновляться всякий раз, когда какой-либо запрос или мутация изменяет соответствующую часть кеша.
  • Мощные инструменты обработки ошибок через apollo-link-error
  • Поддержка пагинации через loadMore
  • Оптимистичные обновления пользовательского интерфейса для мутаций
  • Поддержка подписок через apollo-link-ws
  • Интеграция с местным государственным управлением через apollo-link-state
  • Поддержка отложенных запросов через директиву @defer
  • Поддержка рендеринга на стороне сервера
  • Chrome-расширение Apollo Client Developer Tools, которое включает встроенную консоль GraphiQL, средство отслеживания запросов, инспектор мутаций и инспектор кеша.

Подробную информацию см. В обширной документации здесь.

Существуют общие шаблоны, которые приводят к необходимости писать (и тестировать) кучу шаблонного кода, например, поддерживать состояние загрузки, чтобы пользовательский интерфейс знал, когда запрос завершен. Использование Apollo или любого другого подобного клиента избавляет от необходимости писать весь этот шаблон и предоставляет чистый, хорошо протестированный API, с которым вы можете работать. Если вы работаете в команде, есть что сказать об использовании хорошо документированной библиотеки, с которой некоторые из вашей команды, возможно, уже знакомы, вместо того, чтобы изучать какой-то новый API, созданный только для конкретного проекта.

Другие вопросы по теме