API
const { data, error, isLoading, isValidating, mutate } = useSWR(key, fetcher, options)
Parámetros
key
: un string key único para la solicitud (o una función / array / null) (detalles), (uso avanzado)fetcher
: (opcional) una función que devuelve una Promise para recuperar sus datos (detalles)options
: (opcional) un objecto de opciónes para el hook useSWR
Valores devueltos
data
: data de la key dada resueltos por elfetcher
(o undefined si no está cargado)error
: error lanzado por elfetcher
(o undefined)isLoading
: if there's an ongoing request and no "loaded data". Fallback data and previous data are not considered "loaded data"isValidating
: si hay una solicitud o carga de revalidaciónmutate(data?, options?
: función para mutar los datos en caché (detalles)
More information can be found here.
Opciones
suspense = false
: activar el modo React Suspense (detalles)fetcher(args)
: la fetcher funciónrevalidateIfStale = true
: automatically revalidate even if there is stale data (details)revalidateOnMount
: activar o desactivar la revalidación automática cuando se monta el componenterevalidateOnFocus = true
: revalidación automática cuanto window gets focused (detalles)revalidateOnReconnect = true
: revalidación automática cuando el navegador recupera la conexión a la red (a través denavigator.onLine
) (detalles)refreshInterval
(detalles):- desactivado por defecto:
refreshInterval = 0
- If set to a number, polling interval
- If set to a function, the function will receive the latest data and should return the interval in milliseconds
- desactivado por defecto:
refreshWhenHidden = false
: polling cuando window es invisible (sirefreshInterval
está activado)refreshWhenOffline = false
: polling cuando el navegador está desconectado (determinado pornavigator.onLine
)shouldRetryOnError = true
: reitentar cuando el fetcher tiene un errordedupingInterval = 2000
: solicitudes de deduplicación con la misma key en este lapso de tiempofocusThrottleInterval = 5000
: sólo revalidar una vez durante un periodo de tiempoloadingTimeout = 3000
: tiempo de espera para activar el evento onLoadingSlowerrorRetryInterval = 5000
: error retry intervalerrorRetryCount
: número máximo de reintentos de errorfallback
: a key-value object of multiple fallback data (example)fallbackData
: datos iniciales a devolver (nota: Esto es por un hook)keepPreviousData = false
: return the previous key's data until the new data has been loaded (detalles)onLoadingSlow(key, config)
: función callback cuando una petición tarda demasiado en cargase (véase:loadingTimeout
)onSuccess(data, key, config)
: función callback cuando una petición termina con éxitoonError(err, key, config)
: función callback cuando una petición devuelve un erroronErrorRetry(err, key, config, revalidate, revalidateOps)
: manejador para el reintento de erroronDiscarded(key)
: callback function when a request is ignored due to race conditionscompare(a, b)
: función de comparación utilizada para detectar cuando los datos devueltos han cambiado, para evitar spurious rerenders. Por defecto, se utiliza stable-hash.isPaused()
: para detectar si pause revalidations, ignorará los datos obtenidos y los errores cuando devuelvatrue
. Devuelvefalse
por defecto.use
: array of middleware functions (details)
💡
Cuando una red lenta (2G, <= 70Kbps), errorRetryInterval
serian 10 segundos, y
loadingTimeout
serian 5 segundos por defecto.
También puede utilizar la configuración global para proporcionar opciónes por defecto.
Last updated on 9 de diciembre de 2022