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 (serefreshInterval
está 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.