[日本語訳]SWR ドキュメンテーション オプション


追記: 2021年6月8日

SWR公式日本語訳ページが追加されたので、そちらをご覧ください

このページは API Options – SWRの日本語訳です
SWR日本語訳全体についてはSWR 日本語訳をご覧ください

APIオプション


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

パラメータ

  • key: リクエストのためのユニークな文字列キー (または function / array / null) (高度な利用法)
  • fetcher: (オプショナル) データをフェッチするためのPromiseを返す関数 (詳細)
  • options: (オプショナル) SWR hook オプション のためのオブジェクト

戻り値

  • data: 指定されたキーに基づき、fetcher によって取得(解決)されたデータ (または 読み込まれていなければ undefined)
  • error: fetcher によって生成されたエラー (または undefined)
  • isValidating: リクエストがある場合 または 再検証(revalidation)の読み込み
  • mutate(data?, shouldRevalidate?): キャッシュされたデータを変更(mutate)する関数

Options

  • suspense = false: React Suspenseモードの有効化 (詳細)
  • fetcher = window.fetch(url).then(res => res.json()): フェッチャー関数
  • initialData: 初回に返されるデータ (注意: フックごと) (詳細)
  • revalidateOnMount: コンポーネントのマウント時に自動で再検証します (デフォルトでは、initialDataが設定されていない場合、マウント時に再検証が行われます。このフラグを使用して動作を強制します)
  • revalidateOnFocus = true: windowにフォーカス時、自動で再検証します (詳細)
  • revalidateOnReconnect = true: ブラウザのネットワーク接続が回復した時に自動で再検証します(navigator.onLine 経由) (詳細)
  • refreshInterval = 0: ポーリング間隔 (デフォルトでは無効) (詳細)
  • refreshWhenHidden = false: ウィンドウが非表示の場合のポーリング (refreshInterval が有効の場合)
  • refreshWhenOffline = false: ブラウザがオフラインの時にポーリング (navigator.onLine 経由で決定)
  • shouldRetryOnError = true: fetcher エラー時のリトライ
  • dedupingInterval = 2000: 指定期間中に同じキーの場合は重複リクエストを排除します
  • focusThrottleInterval = 5000: 指定期間中に一度だけ再検証します
  • loadingTimeout = 3000: onLoadingSlowイベントを発行するためのタイムアウト
  • errorRetryInterval = 5000: エラーリトライの間隔
  • errorRetryCount: エラーリトライの最大試行回数
  • onLoadingSlow(key, config): リクエストの読み込みに時間がかかりすぎる場合のコールバック関数 (loadingTimeout を参照)
  • onSuccess(data, key, config): リクエストが正常に終了したときのコールバック関数
  • onError(err, key, config): リクエストがエラーを返したときのコールバック関数
  • onErrorRetry(err, key, config, revalidate, revalidateOps): エラー再試行のハンドラー
  • compare(a, b): 誤った再レンダリングを回避するために、返されたデータがいつ変更されたかを検出するために使用される比較関数。 デフォルトでは、dequalが使用されます。
  • isPaused(): 関数は再検証を一時停止するかどうかを検出し、true を返した場合はフェッチされたデータやエラーを無視します。デフォルトでは false を返します。