Выбор ответа Junior Состояние и данные спрашивают часто обновлено
TanStack Query: ключ запроса
Вопрос
Экран заказов фильтруется по статусу. Почему ключ должен быть ['orders', status], а не просто ['orders']?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Ключ задаёт запись кеша: у каждого статуса свой кеш и своя загрузка. TanStack Query кеширует по ключу.
Варианты ответа
- Ключ должен содержать вообще все переменные компонента, иначе кеш не работает
- Без
statusв ключе запрос просто не скомпилируется из-за типов - Ключ влияет только на логирование в DevTools, на загрузку данных он не влияет
- Ключ задаёт запись кеша: у каждого статуса свой кеш и своя загрузкаправильный ответ
Разбор
TanStack Query кеширует по ключу. Если ключ не зависит от фильтра, смена фильтра не вызовет новый запрос, и на экране останутся данные другого статуса. В ключ кладут всё, от чего зависит результат функции запроса, но не лишнее (например, не функции и не случайные значения). Компиляции это не касается.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.