Skip to content

Getting Started

Mobile-app-style navigation for Vue 3 — no URL paths, just screens.

Build apps that feel like native mobile — pages slide in/out with smooth transitions, dialogs stack as modals, and persistent HUD controls float above everything. No /users/:id URL routing. Just push('profile') and watch it animate.

Why not vue-router?

vue-routervue-micro-router
Navigation modelURL-based (/path/:param)Segment stack (home → home/menu → home/menu/settings)
Page transitionsManual (TransitionGroup)Built-in slide/fade animations + per-route customization
Multiple visible pagesNo (one route = one view)Yes — stacked pages all render simultaneously
Modal dialogsDIYFirst-class with stacking, backdrop, focus trap
GUI overlays / HUDDIYFirst-class controls with auto-show/hide
Route guardsbeforeRouteEnter etc.beforeEach, beforeEnter, beforeLeave + async
State passingQuery params / route paramsReactive useMicroState() bridge
Navigation historyBrowser history APIBuilt-in canGoBack / historyBack()
Gesture navigationNoneSwipe-back from left edge
Type safetyRoute params typingAuto-typed via Register + useMicroRouter()
State persistenceNoneserialize() / restore()
Nested routersNested <router-view>Independent <MicroRouterView nested>
Lifecycle hooksbeforeRouteEnter etc.onRouteEnter, onDialogEnter, onControlEnter
Use caseWebsites, SPAsGames, mobile-style apps, kiosks, wizards

How it works

Pages stack as path segments — push('menu') slides a new page on top. push(-1) slides it back. No browser URL changes. Just screens animating like a native app.

push('menu')      →  [home] ← [menu slides in]
push('settings')  →  [home] [menu] ← [settings slides in]
push(-1)          →  [home] [menu slides out →]

Dialogs and controls layer on top — independently managed with their own lifecycle, stacking, and transitions.

Next steps