Skip to content
ドキュメント
API

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 になります。

グローバルな設定 を使用して、デフォルトのオプションを提供することもできます。