isLoading
- クエリが最初に実行されている間にtrueになる状態
- 初回のデータフェッチ中にtrue
- キャッシュにデータがない状態で新しいクエリを実行している場合に使用。
- 一度データがキャッシュされれば、その後のリフェッチでは isLoading は false になります。
isPending
- クエリが「現在進行中のリクエストを持つ」場合に true になる状態。
- 初回のフェッチだけでなく、キャッシュされたデータがある場合でもリフェッチ中に true。
- リフェッチ中でも既存のデータがすでに画面に表示されている状態をサポート。
違いのまとめ
状態 | isLoading | isPending |
---|---|---|
初回フェッチ | true |
true |
キャッシュなしのリフェッチ | true |
true |
キャッシュありのリフェッチ | false |
true |
キャッシュデータ表示中のリフェッチ | false |
true |
使い分け
初回のデータ取得中かどうかを確認するなら isLoading を使用。
キャッシュデータが画面に表示されているが、バックグラウンドで更新中かどうかを確認するなら isPending を使用。