vue 라우터는 vue 라이브러리를 이용해서 싱글 페이지 애플리케이션(SPA)을 구현할 때 사용하는 라이브러리이다.
npm install vue-router@4

router 폴더 생성 후 index.js 생성. views 폴더 생성 후 연결할 파일들 생성해 준다.import { createApp } from 'vue'
import App from './App.vue'
import router from './router/index'
const app = createApp(App)
app.use(router)
app.mount('#app')
import { createRouter, createWebHistory } from 'vue-router'
import NewsView from '../views/NewsView.vue'
import AskView from '../views/AskView.vue'
import JobsView from '../views/JobsView.vue'
import UserView from '../views/UserView.vue'
const routes = [
{
path: '/',
component: NewsView
},
{
path: '/news',
component: NewsView
},
{
path: '/ask',
component: AskView
},
{
path: '/jobs',
component: JobsView
},
{
path: '/user',
component: UserView
}
]
const router = createRouter({
history: createWebHistory(),
routes
})
export default router
routes : 라우팅 할 URL과 컴포넌트 값 지정history : URL 해쉬 값 제거 속성<template>
<router-view></router-view>
</template>

<router-link to="이동할 URL"></router-link>
<template>
<div class="header">
<router-link to="/news">News</router-link> |
<router-link to="/ask">Ask</router-link> |
<router-link to="/jobs">Jobs</router-link> |
<router-link to="/user">User</router-link>
</div>
</template>
<script>
export default {
}
</script>
<style scoped>
.header {
color: #fff;
background-color: steelblue;
padding: 12px;
display: flex;
justify-content: space-evenly;
align-content: flex-start;
}
.header a {
color: #fff;
}
.router-link-active.router-link-exact-active {
color: goldenrod;
}
</style>