いつ読むか?

  • React でのデータ再取得を宣言的に行いたいとき

読書メモ

核心

refetch() を呼ぶ代わりに、タイムスタンプを state として持つ

const [refreshKey, setRefreshKey] = useState(Date.now());
const data = useQuery(['data', refreshKey], fetchData);
 
<button onClick={() => setRefreshKey(Date.now())}>更新</button>

なぜ?

  • 命令的 refetch() → 宣言的 state 変更
  • Suspense との相性◎
  • 複数トリガー(手動、自動、WebSocket)を統一できる