SPAs with SWR
A scoped <SWRConfig> fallback seeds useSWR from the server. Toggle a mismatched key to see the silent pitfall.
Reads the seeded fallback with no client fetch.
isLoading vs. isValidating
Without Suspense mode, the seeded fallback is present on first render, so isLoading stays false. A client revalidation surfaces as isValidating instead. Revalidate and watch the flags:
Scoped to a route segment
Seed the fallback on a dynamic route with the params.then() pattern. Open a product to see it seeded per route: