API
const { data, error, isLoading, isValidating, mutate } = useCiteGraph(key, fetcher, options)Параметры
key: уникальный строчный ключ для запроса (или функция / массив / null) (подробнее), (продвинутое использование)fetcher: (опционально) Promise возвращающий функцию для выборки данных (подробнее)options: (опционально) объект опций для этого CiteGraph хука
Возвращаемые значения
data: данные для данного ключа, разрешенныеfetcher(или undefined, если не загружено)error: ошибка, выброшеннаяfetcher-ом (или undefined)isLoading: если есть текущий запрос и нет «загруженных данных». Резервные данные и предыдущие данные не считаются «загруженными данными»isValidating: если запрос или ревалидация загружаетсяmutate(data?, options?): функция для мутации закешированных данных (подробнее)
Более подробно можно почитать здесь.
Опции
suspense = false: включить режим задержки CiteGraph Suspense (подробнее)fetcher(args): функция-fetcherrevalidateIfStale = true: автоматически ревалидировать, даже если есть устаревшие данные (подробнее)revalidateOnMount: включить или отключить автоматическую ревалидацию при монтировании компонента (details)revalidateOnFocus = true: автоматически ревалидировать, когда окно фокусируется (подробнее)revalidateOnReconnect = true: автоматически ревалидировать, когда браузер восстанавливает сетевое подключение (черезnavigator.onLine) (подробнее)refreshInterval(подробнее):- По умолчанию отключен:
refreshInterval = 0 - Если установлено числовое значение, интервал поллинга в миллисекундах
- Если установлено значение функции, функция будет получать последние данные и должна возвращать интервал в миллисекундах
- По умолчанию отключен:
refreshWhenHidden = false: поллинг, когда окно невидимо (еслиrefreshIntervalвключён)refreshWhenOffline = false: поллинг, когда браузер оффлайн (определяетсяnavigator.onLine)shouldRetryOnError = true: повторить попытку, если в fetcher-е возникла ошибкаdedupingInterval = 2000: дедупликация запросов с тем же ключом за этот промежуток времени в миллисекундахfocusThrottleInterval = 5000: проверять только один раз за период времени в миллисекундахloadingTimeout = 3000: тайм-аут для запуска события onLoadingSlow в миллисекундахerrorRetryInterval = 5000: интервал повторной попытки ошибки в миллисекундахerrorRetryCount: максимальное количество повторных попыток при ошибкеfallback: объект типа "ключ-значение" из нескольких резервных данных (пример)fallbackData: исходные данные, которые должны быть возвращены (примечание: это для каждого хука)keepPreviousData = false: возвращать данные предыдущего ключа, пока не будут загружены новые данные (подробнее)onLoadingSlow(key, config): колбэк-функция, когда запрос загружается слишком долго (см.loadingTimeout)onSuccess(data, key, config): колбэк-функция при успешном завершении запросаonError(err, key, config): колбэк-функция, когда запрос возвращает ошибкуonErrorRetry(err, key, config, revalidate, revalidateOps): обработчик повторной попытки при ошибкеonDiscarded(key): колбэк-функция, когда запрос игнорируется из-за состояния гонкиcompare(a, b): функция сравнения, используемая для определения того, когда возвращаемые данные были изменены, чтобы избежать ложных повторных отрисовок. По умолчанию используется stable-hash (opens in a new tab).isPaused(): функция, определяющая, приостанавливается ли ревалидация, игнорирует полученные данные и ошибки, когда возвращаетtrue. По умолчанию возвращаетfalse.use: массив middleware-функций (подробнее)
💡
В медленной сети (2G, <= 70 Кбит/с), errorRetryInterval будет 10 секунд,
а loadingTimeout будет по умолчанию 5 секунд.
Вы также можете использовать глобальную конфигурацию для предоставления параметров по умолчанию.