#1 Data Analytics Program in India
₹2,499₹1,499Enroll Now
5 min read
Question 13 of 37medium

How does Vue Router work?

Client-side routing in Vue applications.

What You'll Learn

  • Setting up Vue Router
  • Route configuration
  • Navigation

Setup

code.jsJavaScript
// router/index.js
import { createRouter, createWebHistory } from 'vue-router'

const routes = [
  { path: '/', component: () => import('./views/Home.vue') },
  { path: '/about', component: () => import('./views/About.vue') },
  { path: '/user/:id', component: () => import('./views/User.vue') }
]

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

export default router

Navigation

code.txtVUE
<template>
  <!-- Declarative -->
  <router-link to="/">Home</router-link>
  <router-link :to="{ name: 'user', params: { id: 1 }}">User</router-link>

  <!-- Route view -->
  <router-view />
</template>

<script setup>
import { useRouter, useRoute } from 'vue-router'

const router = useRouter()
const route = useRoute()

// Programmatic
function goToUser(id) {
  router.push(`/user/${id}`)
}

// Access params
console.log(route.params.id)
</script>

Route Guards

code.jsJavaScript
router.beforeEach((to, from) => {
  if (to.meta.requiresAuth && !isAuthenticated()) {
    return '/login'
  }
})