SIGN IN SIGN UP

A powerful cross-platform UI toolkit for building native-quality iOS, Android, and Progressive Web Apps with HTML, CSS, and JavaScript.

0 0 114 TypeScript

fix(vue-router): set pushedByRoute on same-tab push with direction none (#31137)

Issue number: resolves #24074

---------

## What is the current behavior?

In vue-router, a `router.push` performed with `routerDirection="none"`
doesn't set `pushedByRoute` on the resulting route info. The next page's
`ion-back-button` then can't find a previous entry and falls back to
`defaultHref` instead of going back through history.

The same bug was previously fixed for react-router in v6, this is the
vue version of the fix (Angular doesn't need this fix because the router
works very differently)

## What is the new behavior?

`createIonRouter` now sets `pushedByRoute` from the leaving location
when the navigation is `routerAction === "push"`, `routerDirection ===
"none"`, and stays within the same tab context. Cross-tab pushes with
direction `none` still go through the existing tab-aware branch, which
has different `pushedByRoute` semantics

After the fix, `ion-back-button` returns to the prior page through
history and only falls back to `defaultHref` when there's genuinely no
history to pop.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No

## Other information

New Playwright spec `direction-none-back.spec.ts` covers both the
`forward` and `none` paths and asserts the back button lands on Page A,
not the `defaultHref` fallback

[Test
Page](https://ionic-framework-git-fw-7145-ionic1.vercel.app/vue/direction-none-back/a)
S
Shane committed
9f69f50b946bef47d9b9c7404bd2b48554db349a
Parent: 15e062b
Committed by GitHub <noreply@github.com> on 5/12/2026, 5:50:42 PM