API
const { data, error, isLoading, isValidating, mutate } = useSWR(key, fetcher, options)Parâmetros
key: uma chave única em string para o pedido (ou uma função / array / null) (detalhes), (uso avançado)fetcher: (opcional) uma Promise retornando uma função para obter seus dados (detalhes)options: (opcional) um objeto de opções para esse hook SWR
Valores Retornados
data: dados para a chave fornecida pelofetcher(ou undefined se não carregado)error: erro lançado pelofetcher(ou undefined)isLoading: if there's an ongoing request and no "loaded data". Fallback data and previous data are not considered "loaded data"isValidating: se há um pedido ou revalidação carregandomutate(data?, options?): função para mutar os dados em cache (detalhes)
More information can be found here.
Opções
suspense = false: habilita o modo Suspense do React (detalhes)fetcher(args): a função fetcherrevalidateIfStale = true: revalida automaticamente mesmo que tenha dados obsoletos (detalhes)revalidateOnMount: habilita ou desabilita a revalidação automática quando o componente é montado (details)revalidateOnFocus = true: revalida automaticamente quando a janela é focada (detalhes)revalidateOnReconnect = true: revalida automaticamente quando a conexão é restaurada (vianavigator.onLine) (detalhes)refreshInterval(detalhes):- Desativado por padrão:
refreshInterval = 0 - Se definido como um número, o intervalo de sondagem (polling) em milisegundos
- Se definido como uma função, a função recebe o último dado e deve retornar o intervalo em milisegundos
- Desativado por padrão:
refreshWhenHidden = false: sondagem (polling) quando a janela está invisivel (serefreshIntervalestá ativado)refreshWhenOffline = false: sondagem (polling) quando o navegador está offline (determinado pornavigator.onLine)shouldRetryOnError = true: se deve tentar novamente quando o fetcher retorna um errodedupingInterval = 2000: deduplicar pedidos com a mesma chave em este intervalo em milisegundosfocusThrottleInterval = 5000: somente revalidar uma vez durante um intervalo em milisegundosloadingTimeout = 3000: tempo limite para o evento onLoadingSlowerrorRetryInterval = 5000: intervalo de tentativa de erro em milisegundoserrorRetryCount: número máximo de tentativas de errofallback: um objeto de chave-valor de vários dados de fallback (exemplo)fallbackData: dados iniciais para ser retornado (nota: isto é por-hook)keepPreviousData = false: return the previous key's data until the new data has been loaded (detalhes)onLoadingSlow(key, config): função callback quando um pedido demora muito tempo a carregar (vejaloadingTimeout)onSuccess(data, key, config): função callback quando um pedido é bem-sucedidoonError(err, key, config): função callback quando um pedido retorna um erroonErrorRetry(err, key, config, revalidate, revalidateOps): função callback quando um pedido retorna um erroonDiscarded(key): callback function when a request is ignored due to race conditionscompare(a, b): função de comparação para detectar quando o dado retornado está diferente, para evitar rerenderizações desnecessárias. Por padrão, stable-hash (opens in a new tab) é usado.isPaused(): função para detectar quando o revalidador está pausado, e deve ignorar os dados e erros quando retornatrue. Por padrão, retornafalse.use: array de middleware functions (details)
💡
Quando estiver usando uma conexão lenta (2G, <= 70Kbps), errorRetryInterval será de 10s, e
loadingTimeout será de 5s por padrão.
Você também pode usar a configuração global para fornecer opções padrão.