API options provided by the SWR team.
SWRApril 18, 2022
3 min read
const { data, error, isValidating, mutate } = useSWR(key, fetcher, options);
key: a unique key string for the request (or a function / array / null)
(advanced usage)fetcher: (optional) a Promise returning function to fetch your data
(details)options: (optional) an object of options for this SWR hookdata: data for the given key resolved by fetcher (or undefined if not loaded)error: error thrown by fetcher (or undefined)isValidating: if there's a request or revalidation loadingmutate(data?, shouldRevalidate?): function to mutate the cached data
(details)suspense = false: enable React Suspense mode (details)fetcher(args): the fetcher functionrevalidateIfStale = true: automatically revalidate even if there is stale data
(details)revalidateOnMount: enable or disable automatic revalidation when component is mountedrevalidateOnFocus = true: automatically revalidate when window gets focused
(details)revalidateOnReconnect = true: automatically revalidate when the browser regains a network connection (via
navigator.onLine) (details)refreshInterval (details):
refreshInterval = 0refreshWhenHidden = false: polling when the window is invisible (if refreshInterval is enabled)refreshWhenOffline = false: polling when the browser is offline (determined by navigator.onLine)shouldRetryOnError = true: retry when fetcher has an errordedupingInterval = 2000: dedupe requests with the same key in this time span in millisecondsfocusThrottleInterval = 5000: only revalidate once during a time span in millisecondsloadingTimeout = 3000: timeout to trigger the onLoadingSlow event in millisecondserrorRetryInterval = 5000: error retry interval in millisecondserrorRetryCount: max error retry countfallback: a key-value object of multiple fallback data (example)fallbackData: initial data to be returned (note: This is per-hook)onLoadingSlow(key, config): callback function when a request takes too long to load (see loadingTimeout)onSuccess(data, key, config): callback function when a request finishes successfullyonError(err, key, config): callback function when a request returns an erroronErrorRetry(err, key, config, revalidate, revalidateOps): handler for error retrycompare(a, b): comparison function used to detect when returned data has changed, to avoid spurious rerenders. By
default, stable-hash is used.isPaused(): function to detect whether pause revalidations, will ignore fetched data and errors when it returns
true. Returns false by default.use: array of middleware functions (details)💡 When under a slow network (2G, <= 70Kbps), errorRetryInterval will
be 10s, and
loadingTimeout will be 5s by default.
You can also use global configuration to provide default options.