このページは Automatic Revalidation – SWRの日本語訳です
SWR日本語訳全体についてはSWR 日本語訳をご覧ください
自動再検証
💡 データを手動で再検証する場合は、ミューテーションを確認してください。
フォーカスでの再検証
ページに再度フォーカスを合わせるか、タブを切り替えると、SWRは自動的にデータを再検証します。
これは、最新の状態にすぐに同期するのに役立ちます。 これは、古いモバイルタブや、スリープ状態になったラップトップなどのシナリオでデータを更新する場合に役立ちます。
動画: 本家ドキュメントでご覧ください
ビデオ:フォーカスの再検証を使用して、ページ間でログイン状態を自動的に同期します。
この機能はデフォルトで有効になっています。 revalidateOnFocus
オプションを使用して無効にすることができます。
時間間隔での再検証
多くの場合、複数のデバイス、複数のユーザー、複数のタブからデータが変更されます。 画面上のデータを時間の経過とともに更新するにはどうすればよいでしょうか?
SWRには、データを自動的に再フェッチするオプションがあります。 これはスマートです。つまり、hook に関連するコンポーネントが画面に表示されている場合にのみ、再フェッチが行われます。
動画: 本家ドキュメントでご覧ください
ビデオ:ユーザーが変更を加えると、両方のセッションが最終的に同じデータをレンダリングします。
refreshInterval
の値を設定することで有効にできます。
useSWR('/api/todos', fetcher, { refreshInterval: 1000 })
refreshWhenHidden
や refreshWhenOffline
などのオプションもあります。 両方ともデフォルトで無効になっているため、Webページが画面に表示されていない場合、またはネットワーク接続がない場合、SWRはフェッチしません。
再接続での再検証
ユーザーがオンラインに戻ったときに再検証するにも役立ちます。よくあるシナリオはユーザーがコンピューターのロックを解除したときにインターネットにはまだ接続されていない場合です。
データが常に最新であることを確認するために、SWRはネットワークが回復したときに自動的に再検証します。
この機能はデフォルトで有効になっています。revalidateOnReconnect
オプションを使用して無効にすることができます。