Выбор ответа Middle Состояние и данные обновлено

TanStack Query: staleTime

Вопрос

У запроса staleTime: 60000. Пользователь открыл экран через 30 секунд после прошлой загрузки. Что произойдёт?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Данные возьмутся из кеша без нового запроса: они ещё свежие. staleTime задаёт, сколько данные считаются свежими.

Варианты ответа

  1. Будет новый запрос, а пока он идёт, покажется индикатор загрузки
  2. Кеш уже очищен, ведь прошло больше gcTime, поэтому загрузка начнётся с нуля
  3. Данные возьмутся из кеша без нового запроса: они ещё свежиеправильный ответ
  4. Ошибка конфигурации: staleTime нельзя задавать больше 30 секунд

Разбор

staleTime задаёт, сколько данные считаются свежими. Пока они свежие, повторного запроса при монтировании или фокусе нет. После этого данные «устаревшие»: показываются сразу из кеша, а в фоне идёт обновление. gcTime отвечает за удаление неиспользуемых данных из кеша (по умолчанию 5 минут), а ограничений на staleTime нет. По умолчанию staleTime равен 0.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.