5 min read
•Question 13 of 37mediumHow 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 routerNavigation
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'
}
})