データフェッチ
const { data, error } = useSWR(key, fetcher)
これはSWRの非常に基本的なAPIです。 ここのfetcher
は、SWRのkey
を受け取り、データを返す非同期関数です。
戻り値はdata
として渡され、エラーが発生した場合はerror
としてキャッチされます。
💡
fetcher
は、グローバルに提供されている場合はパラメータから省略できることに注意してください。
グローバルに提供されている場合.
Fetch
データフェッチを処理するために任意のライブラリを使用できます。たとえば、fetch
ポリフィルdevelopit/unfetch (新しいタブで開きます)
import fetch from 'unfetch'
const fetcher = url => fetch(url).then(r => r.json())
function App () {
const { data, error } = useSWR('/api/data', fetcher)
// ...
}
💡
**Next.js**を使用している場合は、このポリフィルをインポートする必要はありません。
新しい組み込みポリフィル:fetch()、URL、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
または、graphql-request (新しいタブで開きます)などのライブラリを使用してGraphQLを使用します。
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
)
// ...
}
GraphQLクエリに変数を渡したい場合は、複数の引数を確認してください。