> Какие опции есть у useSWR или useSWRData (React)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Библио-Глобус
Стек: React
> Пример ответа
useSWR (и его аналог useSWRData, который является внутренним типом в SWR) принимает три основных аргумента: ключ (key), fetcher и опции (options). Основные опции, которые можно передать:
-
revalidateIfStale(boolean, по умолчаниюtrue) - перезапрашивает данные, если кэш считается устаревшим. -
revalidateOnFocus(boolean, по умолчаниюtrue) - автоматически перезапрашивает при фокусе окна. -
revalidateOnReconnect(boolean, по умолчаниюtrue) - перезапрашивает при восстановлении сетевого соединения. -
refreshInterval(number) - интервал автоматической перезагрузки в миллисекундах (например,3000для обновления каждые 3 секунды). -
refreshWhenHidden(boolean) - продолжать ли обновление, когда вкладка неактивна. -
refreshWhenOffline(boolean) - обновлять ли данные при офлайн-режиме. -
shouldRetryOnError(boolean, по умолчаниюtrue) - автоматически повторять запрос при ошибке. -
errorRetryCount(number) - максимальное количество повторных попыток при ошибке. -
errorRetryInterval(number) - интервал между повторными попытками. -
dedupingInterval(number, по умолчанию2000) - интервал дедупликации запросов (чтобы не отправлять одинаковые запросы слишком часто). -
focusThrottleInterval(number) - задержка между перезапросами при фокусе. -
loadingTimeout(number) - таймаут для состояния загрузки. -
onLoadingSlow(callback) - вызывается, если запрос выполняется дольшеloadingTimeout. -
onSuccess(callback) - вызывается при успешном получении данных. -
onError(callback) - вызывается при ошибке. -
onErrorRetry(callback) - кастомная логика повторных попыток при ошибке. -
compare(function) - функция для сравнения старых и новых данных (по умолчаниюdeepEqual). -
isPaused(function) - функция, которая приостанавливает запросы, если возвращаетtrue. -
fallbackData- начальные данные, пока не загрузились реальные. -
suspense(boolean) - включает режим React Suspense. -
revalidate(boolean) - управляет, нужно ли выполнять повторную валидацию при монтировании.
Пример использования с опциями:
JSXconst { data, error } = useSWR('/api/user', fetcher, {revalidateOnFocus: false,refreshInterval: 5000,onError: (err) => console.error(err),fallbackData: { name: 'Гость' }});
> Похожие задачи по frontend
Как называется алгоритм сравнения деревьев в React
Какое initial value можно передать в useState в React?
Как работает lazy загрузка в useSWR
Как вызвать useSWR по нажатию на кнопку, чтобы он не вызывался сразу
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью