Getting Started with Vue Router

Getting Started with Vue Router

Vue Router is the official client-side routing library for Vue. It maps URL paths to components, enabling multi-page navigation within a Single Page Application.

Installation

npm install vue-router@4

Define Routes

// src/router/index.js
import { createRouter, createWebHistory } from 'vue-router'
import HomeView    from '../views/HomeView.vue'
import AboutView   from '../views/AboutView.vue'
import UserView    from '../views/UserView.vue'
import NotFound    from '../views/NotFound.vue'

const routes = [
  { path: '/',          component: HomeView },
  { path: '/about',     component: AboutView },
  { path: '/user/:id',  component: UserView },
  { path: '/:pathMatch(.*)*', component: NotFound }, // 404
]

const router = createRouter({
  history: createWebHistory(),
  routes,
})

export default router

Register with the App

// src/main.js
import { createApp } from 'vue'
import App    from './App.vue'
import router from './router'

createApp(App).use(router).mount('#app')

RouterView and RouterLink

<!-- App.vue -->
<template>
  <nav>
    <RouterLink to="/">Home</RouterLink>
    <RouterLink to="/about">About</RouterLink>
  </nav>
  <RouterView />  <!-- matched component renders here -->
</template>