API
const { data, error, isLoading, isValidating, mutate } = useSWR(key, fetcher, options)
パラメーター
key
: このリクエストのためのユニークなキー文字列(または関数、配列、null) (詳細), (高度な使用法)fetcher
: (任意) データをフェッチするための Promise を返す関数 ( 詳細 )options
: (任意) この SWR フックのオプションオブジェクト
返り値
data
:fetcher
によって解決された、指定されたキーのデータ(もしくは、ロードされていない場合は undefined)error
:fetcher
によって投げられたエラー (もしくは undefined)isLoading
: 実行中のリクエストがあり "ロードされたデータ" がない状態。フォールバックのためのデータやkeepPreviousData
による以前のデータは "ロードされたデータ" ではありませんisValidating
: リクエストまたは再検証の読み込みがある場合mutate(data?, options?)
: キャッシュされたデータを更新する関数 ( 詳細 )
詳細はこちらをご覧ください。
オプション
suspense = false
: React Suspense モードを有効にする ( 詳細 )fetcher(args)
: フェッチャー関数revalidateIfStale = true
: 古いデータがある場合でも、自動再検証をする ( 詳細 )revalidateOnMount
: コンポーネントのマウント時に行われる自動再検証を有効または無効にします ( 詳細 )revalidateOnFocus = true
: ウィンドウがフォーカスされたときに自動的に再検証します ( 詳細 )revalidateOnReconnect = true
: ブラウザがネットワーク接続を回復すると自動的に再検証します(navigator.onLine
経由) ( 詳細 )refreshInterval
( 詳細 ):- デフォルトでは無効:
refreshInterval = 0
- 数値が設定されている場合、ミリ秒単位のポーリングの間隔
- 関数を設定した場合、その関数は最新のデータを受け取り、ミリ秒単位の間隔で返す必要があります
- デフォルトでは無効:
refreshWhenHidden = false
: ウィンドウが非表示の場合にポーリングします(refreshInterval
が有効になっているときのみ)refreshWhenOffline = false
: ブラウザがオフラインのときにポーリングします(navigator.onLine
によって決定される)shouldRetryOnError = true
: フェッチャーでエラーが発生したときに再試行しますdedupingInterval = 2000
: この期間内での同じキーのリクエストを重複として排除しますfocusThrottleInterval = 5000
: この期間中に一度だけ再検証をしますloadingTimeout = 3000
:onLoadingSlow
イベントをトリガーするためのタイムアウトerrorRetryInterval = 5000
: エラー再試行の間隔errorRetryCount
: 最大エラー再試行回数fallback
: 初期データの key-value オブジェクト ( 例 )fallbackData
: 返される初期データ(注:フックごとに)keepPreviousData = false
: 新しいキーに対するデータがロードされるまで以前のキーのデータを返すかどうか (詳細)onLoadingSlow(key, config)
: リクエストの読み込みに時間がかかりすぎる場合のコールバック関数(loadingTimeout
を参照してください)onSuccess(data, key, config)
: リクエストが正常に終了したときのコールバック関数onError(err, key, config)
: リクエストがエラーを返したときのコールバック関数onErrorRetry(err, key, config, revalidate, revalidateOps)
: エラー再試行のハンドラーonDiscarded(key)
: レースコンディションによりリクエストが無視されたときのコールバック関数compare(a, b)
: 誤った再レンダリングを回避するために、返されたデータがいつ変更されたかを検出するために使用される比較関数。デフォルトでは、stable-hash (opens in a new tab) が使用されますisPaused()
: 再検証を一時停止するかどうかを検出する関数であり、この関数がtrue
を返す場合はフェッチしたデータとエラーを無視します。デフォルトではfalse
を返しますuse
: ミドルウェア関数の配列 ( 詳細 )
💡
低速ネットワーク(2G、<= 70Kbps)のとき、デフォルトで errorRetryInterval
は 10s になり、
loadingTimeout
は 5s になります。
グローバルな設定 を使用して、デフォルトのオプションを提供することもできます。