Categories: 개발

[Vue] Vite Router(페이지이동) 적용

Router 추가 및 설정

Vue에서 페이지를 이동할때 Router 를 사용한다.
Router 를 사용하기 위해서는 당연히 Router 의존성이 필요하므로 추가해주자.

npm install vue-router
혹은
yarn add vue-rotuer

템플릿들을 적용하려다 보면 import 경로에 @가 들어가있는걸 볼 수 있는데
이는 src 경로를 뜻한다. 설정에서 src 경로를 설정해주어야 한다.
vite.config.js 파일에 alias 를 추가해주자.

import path from 'path' // 추가

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': path.resolve(__dirname,'./src'), // 추가
    }
  }
})

페이지 생성

이제 가장 먼저 보일 Home.vue 를 생성하자.
src 밑에 views 디렉토리를 생성해서 Home.vue 를 생성하였다.

// Home.vue
<script setup>
</script>

<template>
  HOME
</template>

<style scoped>

</style>

이제 router 설정 파일을 만들어보자.
나는 src/router 디렉토리 안에 index.js 에 router 설정파일을 만들었다.
처음 웹사이트 접속시 home 이 나올수있게 router를 등록해주었다.

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

const routes = [
    {
        path: '/',
        name: 'Home',
        component:()=>import('@/views/Home.vue')
    },
]

const router = createRouter({
    history: createWebHistory(),
    routes,
    scrollBehavior() {
        // always scroll to top
        return { top: 0 }
    },
})

export default router

이제 main.js 파일에 router 를 추가해준다.

// src/main.js
import router from "@/router/index.js";

const app = createApp(App);
app.use(router) // 추가
app.mount('#app')

이제 App.vue 를 수정해줄 차례이다.
vite 프로젝트를 생성하면서 자동으로 생성된 부분들은 다 지워주고
router-view 만 추가해준다.

// App.vue
<script setup>

</script>

<template>
  <router-view /> <!-- 추가 -->
</template>

<style scoped>

</style>

yarn dev 로 서버를 실행시켜보면 이전 나왔던 기본 페이지가 아닌 Home Home 이 나오는걸 확인 할 수 있다.

페이지 이동

그럼 home.vue 에서 home2.vue로 이동해보자.
먼저 router 파일에 home2 경로를 추가해주자

// router/index.js
const routes = [
    {
        path: '/',
        name: 'Home',
        component:()=>import('@/views/Home.vue')
    },
    // home2 추가
    {
        path: '/home2',
        name: 'Home2',
        component:()=>import('@/views/Home2.vue') 
    },
]

Home.vue 에는 home2로 이동할 버튼을 추가해주었다.
페이지 이동은 router.push 로 한다.

// home.vue
<script setup>
import router from "@/router/index.js";
</script>

<template>
  <span>HOME HOME </span>
  <button @click="router.push('/home2')">홈2로 이동</button>
</template>

<style scoped>

</style>

home2.vue 는 간단하게 만들었다.

// home2.vue
<script setup>
</script>

<template>
  <span>HOME HOME 222222</span>
</template>

<style scoped>

</style>

홈2로 이동 버튼을 누르면 home2 로 이동이 잘 되는걸 확인할 수 있다.

mana

Recent Posts

[여행] 1박 2일 경주 뚜벅이 여행기

경주시티투어 이번 여행에 앞서 뚜벅이 여행객들에게 추천하는게 바로 경주시티투어 이다. 경주시티투어 사이트로이동 경주시티투어는 여러가지가 있다.1.…

8개월 ago

[공공데이터] 공공 API 사용하기 – 지하철 실시간 도착 정보

열린데이터 광장 공공데이터 사이트로 이동 서울 열린데이터 광장에서는 서울에 관한 여러가지 공공 API 를 제공한다.그…

8개월 ago

[Vue] Props 와 Emit – 부모 함수 사용하기

Props props 는 쉽게 생각해서 부모가 자식에게 주는 데이터이다.먼저 부모에게 물려받을 데이터를 자식 컴포넌트에 정의한다.…

8개월 ago

이자 계산기

이번에는 이자 계산기 사이트를 만들어봤습니다. 이자 계산기 바로가기 vue로 하다보니 금액이나 이자율 같은 input 태그의…

8개월 ago

[SpringBoot+Nginx+vite]유틸 사이트를 만들어봤습니다.feat.핫딜 모음

유틸 사이트로 이동 웹사이트 개설 나의 블로그의 접속자 수는 처참하지만 내가 블로그를 시작하면서생각했던 계획은 내…

9개월 ago

[GitHub] Actions로 서버에 자동배포하기

과정 시작하기에 앞서 과정부터 설명해드리겠습니다.master branch에 push 가 되면 GitHub Actions 에서소스를 build 를 하고…

9개월 ago