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