Существуют варианты использования для вызова query
непосредственно на клиенте, но да , с использованием компонента Query это шаблон.Из документов:
Когда React монтирует компонент Query, клиент Apollo автоматически запускает ваш запрос.Что если вы захотите отложить выполнение запроса до тех пор, пока пользователь не выполнит действие, такое как нажатие кнопки?Для этого сценария мы хотим использовать компонент ApolloConsumer и вместо этого напрямую вызывать client.query ().... Выборка таким способом довольно многословна, поэтому мы рекомендуем по возможности использовать компонент Query!
И подпись функции рендеринга пропеллера Query
, и значение query
вызов Promise разрешает иметь тип ApolloQueryResult .Тем не менее, между ними есть некоторые отличия.Например, использование компонента означает, что значение loading
будет обновляться несколько раз, чтобы отражать состояние запроса, в то время как вы не получаете ту же функциональность при непосредственном использовании клиента.
Как правило, при использованииКлиент напрямую также означает, что вам нужно будет сохранять результаты в состоянии какого-либо другого компонента, а не просто использовать значения, предоставляемые функцией рендеринга реквизитов.
Если для запроса требуется для запускавручную, особенно если результаты запроса не будут сохранены в состоянии, то вполне нормально использовать клиент напрямую.В противном случае вам, вероятно, лучше использовать компонент Query
.