npm install vue-router
main.js
import { createApp } from 'vue';
import App from './App.vue';
import router from '@/router';
createApp(App).use(router).mount('#app');
router/index.js
import { createRouter, createWebHistory } from 'vue-router';
import HomeView from '@/views/HomeView.vue';
import AboutView from '@/views/AboutView.vue';
const routes = [
{
path: '/',
name: 'Home',
component: HomeView,
},
{
path: '/about',
name: 'About',
component: AboutView,
},
];
const router = createRouter({
history: createWebHistory('/'),
routes,
});
export default router;
νμ΄μ§λ₯Ό 리λ‘λ©νμ§ μκ³ URLμ 맀νλ νμ΄μ§λ₯Ό λ λλ§ νλ€.
<RouterLink to="/about">About</RouterLink>
// active-class
<RouterLink active-class="active" to="/about">About</RouterLink>
<template>
<ul>
<li>$route.name: {{ $route.name }}</li>
<li>$route.path: {{ $route.path }}</li>
</ul>
</template>
useRouter
: λΌμ°ν° μΈμ€ν΄μ€λ‘ javascriptμμ λ€λ₯Έ νμ΄μ§λ‘ μ΄λν μ μλ€.
useRoute
: νμ¬ νμ± λΌμ°νΈ μ 보μ μ κ·Όν μ μλ€. (μ½κΈ° μ μ©)
<script setup>
import { useRoute, useRouter } from 'vue-router';
const router = useRouter();
const route = useRoute();
console.log('route.name: ', route.name);
console.log('route.path: ', route.path);
const goAboutPage = () => router.push('/about');
</script>
<template>
<h1>Home Page</h1>
<button @click="goAboutPage">About νμ΄μ§λ‘ μ΄λ</button>
</template>
const routes = [
{
path: '/posts/:id',
component: PostDetailView,
},
{
path: '/posts/:id/edit',
component: PostEditView,
},
];
const router = createRouter({
history: createWebHistory('/'),
routes,
});
<div>User {{ $route.params.id }}</div>'