# What changed in @tanstack/vue-router

> 36 changes in @tanstack/vue-router 1 from its official release notes, upgrade guides and advisories: 8 breaking. Each one cited. Sources checked 2026-11-15. HTML: https://unstale.sh/npm/@tanstack/vue-router/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @tanstack/vue-router 1

### Breaking changes

- The internal helper is no longer exported. (1.170.33) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.33)
- The internal helper is no longer exported. (1.170.33) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.33)
- Navigation and redirect destinations are validated; ambiguous relative URLs stay on the current origin, and configured origins must already be normalized. (1.170.31) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.31)
- Vue error boundaries preserve falsy thrown values, and boundary error components and onCatch callbacks now receive errors typed as unknown. Narrow errors before reading message or stack. (1.170.30) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.30)
- Framework links no longer use a prebuilt-location argument; client preload locations are built on demand. (1.170.29) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.29)
- Active route components stay mounted by default when route params change. (1.170.25) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.25)
- The undocumented data-transitioning attribute was removed from Link. (1.170.24) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.24)
- The undocumented Link isTransitioning state was removed. (1.170.24) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.24)

### Performance

- Vue Links reuse the router's built destination across navigations and derive their state through fewer reactive nodes. (1.170.38) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.38)
- Link reduces bundle size by sharing active-path checks and resolving only the selected active or inactive props, while avoiding unnecessary class/style allocations. (1.170.33) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.33)
- An unnecessary match Fragment is removed to reduce VNode allocation and transient JIT compilation memory while preserving route content and scroll restoration. (1.170.33) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.33)
- Vue links share normalized pathname comparisons to reduce bundle size. (1.170.31) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.31)

### Behavior and default changes

- This setting is initialization-only: configure it when creating the router. Changing allowed characters requires a new router instance. (1.170.33) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.33)
- Warn when an Outlet is rendered inside a pending, error, or not-found component. (1.170.24) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.24)

### Fixes and other changes

- Links for routes left by a pending navigation skip deriving the destination location, and clicks and preloads follow the displayed href. buildLocation builds mask and routeMasks locations from the same _fromLocation as the destination. (1.170.38) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.38)
- Pending link preload timers are canceled when navigation starts, avoiding redundant preloading while the destination is loading. (1.170.38) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.38)
- Skips unused Link preload cleanup when preloading is disabled. (1.170.36) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.36)
- Ignores queued viewport notifications after their effect has been cleaned up. (1.170.36) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.36)
- Router requests whose Accept header allows neither text/html nor */* now receive 406 Not Acceptable instead of 500. (1.170.34) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.34)
- Preserves native form HTTP redirects, route error handling, and masks for document redirects. (1.170.31) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.31)
- Prerender requests and output paths are constrained. (1.170.31) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.31)
- Explicit redirect Location headers are honored before route options are checked. (1.170.31) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.31)
- Redirect headers no longer appear in serialized server function response bodies. (1.170.31) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.31)
- Shared loader redirects retain per-navigation destinations. (1.170.31) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.31)
- Vue link state refreshes when destinations become internal. (1.170.31) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.31)
- Absolute URL checks in links, navigation, redirects, and build configuration use URL.canParse, with a URL constructor fallback for older browsers. (1.170.30) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.30)
- Successful not-found matches remain terminal shared boundaries during client navigation, preserving route context while the destination loads. (1.170.30) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.30)
- Structural descendants below error and not-found boundaries are excluded from lifecycle callbacks; lifecycle membership is preserved through invalidation, hydration, background reloads, and superseded navigation publication. (1.170.30) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.30)
- The route-scoped API now forwards shouldThrow and preserves optional return types when shouldThrow is false. (1.170.30) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.30)
- The route-scoped API now forwards shouldThrow and preserves optional return types when shouldThrow is false. (1.170.30) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.30)
- The route-scoped API now forwards shouldThrow and preserves optional return types when shouldThrow is false. (1.170.30) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.30)
- Context is preserved during reloads. (1.170.29) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.29)
- Pending UI is preserved across retained routes. (1.170.27) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.27)
- Resolved lazy route components are reused when revisiting code-split routes, preventing unnecessary pending UI. (1.170.25) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.25)
- preloadDelay now applies to viewport link preloading. (1.170.24) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.24)
- Pending preloads are canceled when links leave the viewport. (1.170.24) — [release notes](https://github.com/TanStack/router/releases/tag/%40tanstack/vue-router%401.170.24)
