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: