> Какие опции есть у 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) - управляет, нужно ли выполнять повторную валидацию при монтировании.

Пример использования с опциями:

JSX
const { data, error } = useSWR('/api/user', fetcher, {
revalidateOnFocus: false,
refreshInterval: 5000,
onError: (err) => console.error(err),
fallbackData: { name: 'Гость' }
});

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью