ConfigsJul 17, 2026·3 min read

Vue Router — The Official Router for Vue.js Applications

The official client-side routing library for Vue.js that provides declarative route mapping, nested routes, navigation guards, and dynamic route matching. Essential infrastructure for any Vue single-page application.

Agent ready

Ready-to-run agent install

This asset can be installed after the agent chooses its runtime, checks the plan, and runs the matching command.

Native · 98/100Policy: allow
Agent surface
Any MCP/CLI agent
Kind
Skill
Install
Single
Trust
Trust: Established
Entrypoint
Vue Router
Direct install command
npx -y tokrepo@latest install 8ca2ec1a-81b9-11f1-9bc6-00163e2b0d79 --target codex

Run after dry-run confirms the install plan.

Introduction

Vue Router is the official routing solution for Vue.js applications. It maps URL paths to Vue components, enabling single-page application navigation without full page reloads. Deeply integrated with Vue's reactivity system, it supports composition API hooks, typed routes, and seamless transitions between views.

What Vue Router Does

  • Maps URL paths to Vue components with static and dynamic route segments
  • Supports nested routes for layout composition with parent and child views
  • Provides navigation guards (beforeEach, beforeResolve, afterEach) for access control
  • Enables named views for rendering multiple components at the same route
  • Handles scroll behavior preservation and restoration across navigations

Architecture Overview

Vue Router creates a router instance that intercepts browser navigation events and resolves them against a route configuration tree. Each route maps a path pattern to one or more Vue components. The router maintains a reactive route object that components access via useRoute(). Navigation is performed programmatically via useRouter() or declaratively with RouterLink components. History modes include HTML5 pushState, hash-based, and in-memory for SSR.

Self-Hosting & Configuration

  • Install vue-router and create a router instance with createRouter()
  • Choose createWebHistory() for clean URLs or createWebHashHistory() for hash-based routing
  • Define routes as an array of objects with path, component, and optional children
  • Register the router with app.use(router) in your Vue app entry point
  • Use lazy loading with dynamic imports: component: () => import("./views/About.vue")

Key Features

  • Composition API hooks (useRoute, useRouter) for type-safe route access
  • Dynamic route matching with params, wildcards, and custom regex patterns
  • Route-level code splitting with automatic lazy loading via dynamic imports
  • Navigation guards at global, per-route, and component levels
  • Typed route support with TypeScript for compile-time path validation

Comparison with Similar Tools

  • React Router — serves the same role for React; Vue Router is Vue-specific with deeper framework integration
  • Nuxt routing — file-based routing built on Vue Router; use Vue Router directly for non-Nuxt Vue apps
  • unplugin-vue-router — adds file-based routing to plain Vue projects using Vue Router under the hood
  • TanStack Router — a framework-agnostic type-safe router; Vue Router is the community standard for Vue

FAQ

Q: Do I need Vue Router if I use Nuxt? A: Nuxt includes Vue Router internally and generates routes from your file structure. You configure routing through Nuxt conventions rather than manual route definitions.

Q: Can I use Vue Router with Vue 2? A: Vue Router v4 requires Vue 3. For Vue 2, use Vue Router v3.

Q: How do I handle 404 pages? A: Add a catch-all route with path: "/:pathMatch(.)" at the end of your routes array.

Q: Does it support server-side rendering? A: Yes. Use createMemoryHistory() on the server and hydrate the client-side router with the same route configuration.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets