React Queryでウィンドウフォーカス時のデータ再取得を止める

2023年2月22日水曜日

react

t f B! P L

React Queryでウィンドウにフォーカスが当たるたび(refocusの時)に、データの再取得が走っているのに気付いた。どうも React Query のデフォルトの仕様の動きらしい。

頻繁にデータが更新されるソーシャル系のサイトでは必要な措置かもしれないが、そうでないサービスや、AWSなどの従量課金性のものを使っている場合、いちいちウィンドウにフォーカスがAPIの実行回数が無駄し増えるのはよろしくない。

フォーカス次のデータ再取得を止める

useQuery 使用時に、オプションの refetchOnWindowFocusfalse を指定してやると、フォーカス取得時のデータ再取得が行われなくなる。

const getRepos = async () => {
	const res = await fetch('https://api.github.com/repos/facebook/react')
	return res.json()
}

// useQuery使用時にオプションで「refetchOnWindowFocus」を指定
const {data, error, isLoading} = useQuery('github', getRepos, {
    refetchOnWindowFocus: false   // ←これ
})
スポンサーリンク
スポンサーリンク

このブログを検索

Profile

自分の写真
Webアプリエンジニア。 日々新しい技術を追い求めてブログでアウトプットしています。
プロフィール画像は、猫村ゆゆこ様に書いてもらいました。

仕事募集もしていたり、していなかったり。

QooQ