Объясните назначение queryKey и queryFn в TanStack Query и почему параметры, влияющие на запрос, должны входить в queryKey.

queryKey идентифицирует запись кеша, queryFn получает данные. Параметры, меняющие результат, должны участвовать в ключе, чтобы разные запросы не делили одну запись.

Короткий ответ

Что ответить на собеседовании

queryKey идентифицирует запись кеша, queryFn получает данные. Параметры, меняющие результат, должны участвовать в ключе, чтобы разные запросы не делили одну запись.

Подробный разбор

Ответ с пояснениями

queryKey идентифицирует запись кеша, queryFn получает данные. Параметры, меняющие результат, должны участвовать в ключе, чтобы разные запросы не делили одну запись.

Например, ['users', { page, filter }] отделяет страницы и фильтры. Изменение ключа меняет наблюдаемый запрос; реальный refetch зависит также от enabled, staleTime и состояния кеша. Ключ должен быть сериализуемым и стабильным по содержимому. Замыкание queryFn на новый параметр без изменения key может показать данные другого запроса.

Источник: tanstack.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее