Skip to content
Documentação
Data Fetching

Data Fetching

const { data, error } = useSWR(key, fetcher)

Essa é a API mais fundamental do SWR. A função fetcher aqui é uma função assíncrona que aceita a chave do SWR, e retorna os dados.

O valor retornado será passado como data, e se ele der erro, será capturado como error.

💡

Note que fetcher pode ser omitido dos parâmetros se ele for fornecido globalmente.

Fetch

Você pode usar qualquer biblioteca para lidar com a obtenção de dados, por exemplo o fetch polyfill developit/unfetch (opens in a new tab):

import fetch from 'unfetch'
 
const fetcher = url => fetch(url).then(r => r.json())
 
function App () {
  const { data, error } = useSWR('/api/data', fetcher)
  // ...
}
💡

Se você está usando Next.js, você não precisa importar este polyfill:
New Built-In Polyfills: fetch(), URL, and Object.assign

Axios

import axios from 'axios'
 
const fetcher = url => axios.get(url).then(res => res.data)
 
function App () {
  const { data, error } = useSWR('/api/data', fetcher)
  // ...
}

GraphQL

Ou usando GraphQL com bibliotecas como graphql-request (opens in a new tab):

import { request } from 'graphql-request'
 
const fetcher = query => request('/api/graphql', query)
 
function App () {
  const { data, error } = useSWR(
    `{
      Movie(title: "Inception") {
        releaseDate
        actors {
          name
        }
      }
    }`,
    fetcher
  )
  // ...
}

Se você quiser passar variáveis para uma query GraphQL, cheque Argumentos Múltiplos.