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