Comparison
Hard navigationvsSoft navigation
Hard navigation
you clicked a link and the whole document reloaded, losing everything held in memory.
A real document request, which discards the JavaScript heap, re-runs the bundle and re-fetches everything not cached. It is what happens on a refresh, on an external link, and on any anchor the router did not intercept. Every piece of state not persisted somewhere is gone, which is why in-progress form data is worth keeping outside memory.
Full entry →Soft navigation
the page changed without a reload, so none of your load-time metrics fired for it.
A route change handled in the browser without a document load. It is cheap and it is invisible to the performance APIs, which were built around document loads — so a single-page application can report excellent Core Web Vitals while every navigation after the first is slow. Measuring them requires the newer soft navigation instrumentation or your own timing around route transitions.
Full entry →