Вызов readQuery
просто читает из кэша один раз, что почти никогда не то, что вы хотите Компонент Query
подписывается на изменения в кэше и запускает сетевой запрос в случае пропуска кэша (при условии, что вы используете стандартную cache-first
политику выборки ). Вы можете безопасно использовать несколько Query
компонентов в вашем приложении для одного и того же запроса - при условии, что они используют один и тот же variables
, рендеринг нескольких Query
компонентов приведет только к одному запросу на ваш сервер.
readQuery
следует использовать только внутри update
функций, когда вам нужно прочитать, а затем обновить часть кэша - не используйте его для предоставления данных вашим компонентам. Если вы хотите только читать из кэша, вы можете использовать политику cache-only
, но, опять же, это редко требуется, потому что Apollo достаточно умен, чтобы знать, когда запрос находится в полете.