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