これはなに?
SWRを使ってみて、optionsで色々と設定ができそうだなーと思ったのと、ドキュメントがあまりわかりやすくなかったので自分の言葉でまとめてみました
オプション一覧
revalidateIfStale
マウントした時に古いデータがあった際に自動で再検証するかどうかを制御している
デフォルト: true
何回取得しても値が変わらない場合はfalseにする(そしたらSWR使う必要あるのか?とも思った)
revalidateOnMount
コンポーネントのマウント時に自動で再検証するかどうか
デフォルト:false
enable or disable automatic revalidation when component is mounted
revalidateOnFocus
画面に戻った際に自動で再検証を行うかどうか
デフォルト: true
強整合性が求められるのであればtrueなのかな?
revalidateOnReconnect
ブラウザがオンラインになった際に自動で再検証するか
デフォルト: true
refreshInterval
ポーリング間隔の指定、単位はミリ秒
デフォルト: 無効
refreshWhenHidden
画面が表示されていない際にリフレッシュをするか
※但し、refreshInterval
が無効の場合は自動的に強制的にfalseになる
デフォルト: false
refreshWhenOffline
ブラウザがオフラインの際にリフレッシュをするか
※但し、refreshInterval
が無効の場合は自動的に強制的にfalseになる
デフォルト: false
shouldRetryOnError
エラー時のリトライの有無
デフォルト: true
dedupingInterval
重複したリクエストを削除する期間の指定
デフォルト: 2000
focusThrottleInterval
フォーカス時の再検証の期間指定
デフォルト: 5000
loadingTimeout
onLoadingSlowイベントを発行するためのタイムアウト
デフォルト: 3000
errorRetryInterval
エラーが起きた際のリトライの間隔、単位はミリ秒
デフォルト: 5000
errorRetryCount
エラー時のリトライの最大試行回数
デフォルト: なし
fallback
fallbackData
初期データの設定(hookによって異なる)
onLoadingSlow(key, config)
リクエストの読み込みに時間がかかりすぎる場合のコールバック関数