自动重新验证
💡
如果你想手动重新验证数据,请查看 mutation。
Revalidate on Focus(聚焦时重新验证)
当你重新聚焦一个页面或在标签页之间切换时,SWR 会自动重新验证数据。
这对于立即同步到最新状态非常有用。对于在 stale mobile tabs 或休眠的笔记本电脑等情况下刷新数据也很有帮助。
该特性默认是启用的。你可以通过 revalidateOnFocus
选项禁用它。
Revalidate on Interval(间隔重新验证)
在很多情况下,数据会因为多个设备、多个用户、多个选项卡而发生改变。那么我们如何随着时间的推移更新屏幕上的数据呢?
SWR 会为你提供自动重新请求数据的选项。这很智能,意味着只有与 hook 相关的组件在屏幕上时,才会重新请求。
你可以通过设置 refreshInterval
值来启用他:
useSWR('/api/todos', fetcher, { refreshInterval: 1000 })
还有其他选项,例如 refreshWhenHidden
和 refreshWhenOffline
。这两项默认都是禁用的,所以当网页不在屏幕上或没有网络连接时,SWR 不会请求。
Revalidate on Reconnect(重新连接时重新验证)
当用户重新联机时重新验证非常有用。这种情况经常发生在用户解锁了他们的计算机但网络还没有连上时。
为了确保数据始终是最新的,SWR 会在网络恢复时自动重新验证。
该特性默认是启用的。你可以通过 revalidateOnReconnect
选项禁用它。