Реагировать на клиентов GraphQL
С помощью React
с GraphQL clients
лайк Apollo Client
это хорошая идея? Таких результатов я могу достичь с react
и новый Context API
,
В основном я могу потреблять GraphQL API
с помощью axios
или любые другие библиотеки, подобные этой. И для государственного управления я могу использовать реагировать новые Context API
с, который действительно прост.
axios.get('localhost://4000?qraphql').then((res)=>{
//do something with the response.
})
Есть ли еще какие-то преимущества? Apollo Client
, Зачем мне действительно идти на Apollo client
когда я могу добиться того же без него. Это поможет мне уменьшить мой bundle
размер.
1 ответ
Клиент Apollo предоставляет массу возможностей помимо простого извлечения данных с сервера. Ниже приведен неполный список:
- Открытая загрузка, ошибка и состояние данных, поэтому вам не нужно создавать дополнительные компоненты с состоянием только для асинхронной выборки данных
- Нормализованный уровень кэширования, который позволяет избежать ненужных повторных запросов к вашему серверу.
- Наблюдаемые запросы, которые позволяют вашему пользовательскому интерфейсу обновляться всякий раз, когда какой-либо запрос или мутация изменяет соответствующую часть кэша
- Мощные инструменты обработки ошибок через
apollo-link-error
- Поддержка пагинации через
loadMore
- Оптимистичные обновления пользовательского интерфейса для мутаций
- Поддержка подписок через
apollo-link-ws
- Интеграция с местным государственным управлением через
apollo-link-state
- Поддержка отложенных запросов через
@defer
директива - Поддержка рендеринга на стороне сервера
- Расширение Apollo Client Developer Tools chrome, которое включает встроенную консоль GraphiQL, средство просмотра запросов, инспектор мутаций и инспектор кэша.
Смотрите подробные документы здесь для более подробной информации.
Существуют общие шаблоны, которые приводят к необходимости писать (и тестировать) набор шаблонного кода, например, поддерживать состояние загрузки, чтобы ваш пользовательский интерфейс знал, когда запрос завершен. Использование Apollo или любого другого подобного клиента избавляет от необходимости писать все эти шаблоны и предоставляет чистый, хорошо проверенный API для работы с вами. Если вы работаете в команде, есть еще кое-что, что можно сказать об использовании хорошо документированной библиотеки, с которой некоторые из вашей команды уже могут быть знакомы, вместо того, чтобы изучать какой-то новый API, созданный только для конкретного проекта.