Posts (Vue.js) 라우터 기초 (1)
Post
Cancel

(Vue.js) 라우터 기초 (1)

Vue 에서는 vue-router 라는 SPA 페이지 전환 공식 라우터를 제공 합니다. npm 을 통해 vue-router 를 설치하고, Vue root 인스턴스 생성 전 router 인스턴스를 생성 하면 라우터를 사용할 준비가 된 것 입니다.

✨vue-cli 를 사용할 경우 Vue.use(VueRouter) 로 라우터 사용을 명시해야합니다.

vue-router 설치

1
npm i vue-router

package.json 에 추가된 vue-router 디펜던시

router dependency

Vue 라우터 기초 예제

라우팅 기능을 사용하기 위해 어플리케이션의 시작지점인 main.js 에서 vue-router 를 import 합니다.
페이지 전환을 테스트 하기 위해 Home.vue, About.vue 페이지 컴포넌트를 만들어 import 합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// main.js vue-router 사용
import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './VueRouterApp.vue' // 라우팅 페이지 viewer app
import Home from './components/route-page/Home' // 라우팅 대상 페이지
import About from './components/route-page/About' // 라우팅 대상 페이지

Vue.use(VueRouter)

const routes = [ // 라우트 설정
    { path: '/', component: Home },
    { path: '/home', component: Home },
    { path: '/about', component: About }
]
const router = new VueRouter({
    mode: 'history',
    routes,
})

new Vue({
  router,
  render: h => h(App),
}).$mount('#app')

라우팅 대상 페이지 Home.vue 컴포넌트

1
2
3
4
5
6
7
8
9
10
11
12
// Home.vue
<template>
  <h3> {{ message }} </h3>
</template>
<script>
  export default {
      name : 'Home',
      data() {
        return { message: 'Hello I am Home !' }
      }
  }
</script>

라우팅 대상 페이지 About.vue 컴포넌트

1
2
3
4
5
6
7
8
9
10
11
12
// About.vue
<template>
  <h3> {{ message }} </h3>
</template>
<script>
  export default {
      name : 'About',
      data() {
        return { message: 'Hello I am About !' }
      }
  }
</script>

Vue router 에서 제공하는 기본 엘리먼트 router-linkrouter-view 가 있습니다.
router-link 는 a 태그로 전환 되고, to="${path}" 로 main.js 에서 설정한 라우트 경로를 적어주면 됩니다.
router-view 는 현재 url을 보고 path 매핑된 컴포넌트를 렌더링 합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// App.vue
<template>
  <div id="app">
    <header>
      <h1>Vue Router App</h1>
    </header>
    <ul>
      <li><router-link to="/home">home</router-link></li>
      <li><router-link to="/about">about</router-link></li>
    </ul>
    <router-view></router-view> <!-- 컴포넌트 렌더링 -->
    <footer>
      <small>Tel. 02-0000-0000, address: xxxx</small>
    </footer>
  </div>
</template>

<script>
export default {
    name: 'App',
    created() {
        console.log(this.$router)
    }
}
</script>

Vue 라우터 실행결과

최종 실행결과는 아래와 같습니다 🙂
/, /home 에서는 Home.vue 컴포넌트 렌더링, /about 에서는 About.vue 가 렌더링 되죠.
싱글 페이지 어플리케이션 (SPA) 에서는 화면의 꿈뻑임(새로고침) 없이 필요한 부분만 렌더링 하여 사용자에게 시각적 불편함 없는 화면 전환이 큰 장점인 것 같습니다.

router 기초 페이지 렌더링

Vue 라우터는 여러 편리한 기능들과 옵션이 존재하는데요. 이번 포스팅은 라우터의 정말 기본적인 기능만 설명하였습니다.
다음 포스팅에서 라우터의 기능에대해 계속 다뤄보도록 하겠습니다. ☺️

참고

Vue Router 공식 홈페이지

This post is licensed under CC BY 4.0 by the author.

(Vue.js) 필터 (filter) 를 사용해 문자열 형식화 하기

(Vue.js) 라우터 기초 (2)

Comments powered by Disqus.