useSWR
from SWR
docs
例
code:ts
const { data, error } = useSWR('/api/user', fetcher)
引数
keyがcacheのkeyになる
プロジェクト内でユニークにしないといけない
URLにしとけば大丈夫か
keyが同じでfetcherが異なるということもできる
しかしそうするとcacheの意味が無くなる場合がある ref
どういうユースケースでそんなことするんだ?
1ファイルにすると凝集度
fetcher
SWRのfetcher
options
返り値
data
cacheがない状態のときはundefinedになる
error
revalidate()
手動で再取得行うための関数
mutate()
関数
revalidate系のoptions
revalidateする必要がないのであれば、そもそもuseSWRImmutableを使うと良い
revalidateOnMount: enable or disable automatic revalidation when component is mounted (by default revalidation occurs on mount when initialData is not set, use this flag to force behavior)
revalidateOnFocus
windowがfocusされた時にRevalidateする
defaultはtrue
わざわざ再fetchが不要な時はfalseを指定することを心がけるmrsekut.icon
https://swr.vercel.app/docs/revalidation#revalidate-on-focus
revalidateOnReconnect
通信が切れて復活したらRevalidateする
https://swr.vercel.app/docs/revalidation#revalidate-on-reconnect
revalidateIfStale
useSWRのoptions
/nwtgck/useSWRとio-tsを使うときに型を強めにするtypedFetcher
with io-ts