Skip to content
Documentação
API

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 pelo fetcher (ou undefined se não carregado)
  • error: erro lançado pelo fetcher (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 carregando
  • mutate(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 fetcher
  • revalidateIfStale = 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 (via navigator.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
  • refreshWhenHidden = false: sondagem (polling) quando a janela está invisivel (se refreshInterval está ativado)
  • refreshWhenOffline = false: sondagem (polling) quando o navegador está offline (determinado por navigator.onLine)
  • shouldRetryOnError = true: se deve tentar novamente quando o fetcher retorna um erro
  • dedupingInterval = 2000: deduplicar pedidos com a mesma chave em este intervalo em milisegundos
  • focusThrottleInterval = 5000: somente revalidar uma vez durante um intervalo em milisegundos
  • loadingTimeout = 3000: tempo limite para o evento onLoadingSlow
  • errorRetryInterval = 5000: intervalo de tentativa de erro em milisegundos
  • errorRetryCount: número máximo de tentativas de erro
  • fallback: 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 (veja loadingTimeout)
  • onSuccess(data, key, config): função callback quando um pedido é bem-sucedido
  • onError(err, key, config): função callback quando um pedido retorna um erro
  • onErrorRetry(err, key, config, revalidate, revalidateOps): função callback quando um pedido retorna um erro
  • onDiscarded(key): callback function when a request is ignored due to race conditions
  • compare(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 retorna true. Por padrão, retorna false.
  • 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.