Выбор ответа Middle Context и стейт-менеджеры обновлено
staleTime по умолчанию в TanStack Query
Вопрос
В TanStack Query v5 два компонента подряд монтируются с одинаковым queryKey, staleTime не задан. Что происходит с данными?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Второй берёт данные из кеша, но они устаревшие и обновятся в фоне. По умолчанию staleTime: 0: кеш отдаётся сразу, но помечен устаревшим, и библиотека обновляет его в фоне при новых монтированиях, фокусе окна, восстановлении сети.
Варианты ответа
- Второй компонент ждёт истечения 5 минут, прежде чем запросить снова
- Каждый компонент делает свой запрос и хранит свою копию данных
- Данные кешируются навсегда до перезагрузки страницы
- Второй берёт данные из кеша, но они устаревшие и обновятся в фонеправильный ответ
Разбор
По умолчанию staleTime: 0: кеш отдаётся сразу, но помечен устаревшим, и библиотека обновляет его в фоне при новых монтированиях, фокусе окна, восстановлении сети. Одновременные запросы с одним ключом дедуплицируются.
- 5 минут это
gcTime: сколько неиспользуемый кеш живёт в памяти, а не когда перезапрашивать. - Отдельных копий на компонент нет: кеш общий по ключу.
- «Навсегда» будет только с
staleTime: Infinity.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.