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.
npm install vue-router@4
// 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
// src/main.js
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
createApp(App).use(router).mount('#app')
<!-- App.vue -->
<template>
<nav>
<RouterLink to="/">Home</RouterLink>
<RouterLink to="/about">About</RouterLink>
</nav>
<RouterView /> <!-- matched component renders here -->
</template>