WebJs Gallery
← Gallery

Client router

Navigate to the second page and back. With JS on it is a soft swap (no full reload, scroll restored); open the network tab to see only a fragment fetched, prefetched on hover. With JS off the same links do full-page navigations. Nothing was imported to get this.

Or drive it from JS with navigate() / revalidate():

Plain link: /features/client-router/second. The router is on, so this soft-navigates (no full reload). Toggle it off, then click again to watch the browser do a full page load.

Opt out app-wide with { "webjs": { "clientRouter": false } }, or per-link with data-no-router (use it for auth flows like /logout that must reset in-memory state).