반응형

라우터는 뷰 라이브러리를 이용하여 SPA(Single Page Appliaction) 구현을 할 때 사용하는 라이브러리이다.

 

1. 라우터 연결

라우터를 사용하기 위해서는 CDN 방식 혹은 NPM 방식으로 설치할 수 있다.

 

CDN 방식은 script 태그에 CDN 링크를 추가해서 연결을 하는 방식이고

NPM 방식은 Vue CLI로 프로젝트를 생성하거나 NPM 기반으로 프로젝트를 생성해서 라우터 설치 명령어 입력을 통해 설치한다.

<!-- CDN 방식 -->
<script src="https://unpkg.com/vue@2"></script>
<script src="https://unpkg.com/vue-router@3"></script>
  
<!-- NPM 방식(아래 명령어 입력) -->
npm install vue-router@3

 

위와 같이 설치한 뒤 아래 소스와 같이 뷰 라우터를 등록할 수 있다.

 

var router = new VueRouter({
    // 라우터 옵션
});
 
// 인스턴스에 라우터 인스턴스를 등록
new Vue({
    router: router,     //  라우터 인스턴스의 변수명으로 등록
});

 

2. 라우터 옵션

라우터를 연결 및 등록한 뒤 라우터를 사용할 때 라우터 옵션을 지정한다.

2가지의 필수 옵션이 있다.

 

- routes: 라우팅 할 URL과 컴포넌트 값 지정(페이지의 라우팅 정보)

- mode: URL의 해쉬 값 제거 속성

 

var LoginComponent = {
    template: '<div>Login</div>'
}
var MainComponent = {
    template: '<div>Main</div>'
}
 
var router = new VueRouter({
    mode: 'history',
    routes: [   // 배열 형식으로 지정
        {
            // 페이지의  url 이름
            path:'/login',
            // 해당 url에서 표시될 컴포넌트
            component: LoginComponent,
        },
        {
            path: '/main',
            component: MainComponent,
        }
    ]
});

 

위와 같이 라우터 옵션들을 입력해서 특정 컴포넌트들을 세부 페이지처럼 사용할 수 있게 url을 지정하고 연결해준다.

 

3. router-view

라우터 옵션으로 라우터를 컴포넌트와 연결하고 화면에 해당 컴포넌트를 뿌릴 때 router-view를 사용한다.

<div id="app">
    <router-view></router-view><!-- 라우터에 등록한 LoginComponent 혹은 MainComponent를 화면에 보여준다 -->
</div>

 

localhost:0000/router.html/login 으로 url을 입력시 LoginComponent 내용이,

localhost:0000/router.html/main 으로 url을 입력시 MainComponent 내용이 <router-view> 영역에 뿌려진다.

 

4. router-link

사용자들이 일반적인 웹 페이지에서 a태그를 통해 링크 이동을 하여 페이지를 탐색하듯

vue 화면에서 특정 링크를 클릭해서 화면을 이동할 수 있게 해주는 것이 router-link 이다. (실제 html 소스상에 <router-link> 는 a태그로 출력된다.)

<div id="app">
    <!-- <router-link to="이동할 URL"></router-link> -->
    <router-link to="/login">로그인</router-link>
    <router-link to="/main">메인</router-link>
 
    <router-view></router-view> <!-- routerlink를 클릭할 때마다 to에 연결된 url의 화면이 출력된다. -->
</div>
 
<!-- 출력
<a href="/login">로그인</a>
<a href="/main">메인</a>
-->

 

 


출처

인프런 'Vue.js 시작하기 - Age of Vue.js' 강좌

 

 

반응형

'Frontend > Vue.js' 카테고리의 다른 글

[vue 2 기초] Axios (액시오스)  (0) 2023.11.07
[vue 2 기초] 컴포넌트 통신(props, event emit)  (1) 2023.11.04
[Vue 2 기초] 컴포넌트  (0) 2023.11.03
[Vue 2 기초] 인스턴스  (0) 2023.11.03
Vue.js 란?  (0) 2023.11.03

+ Recent posts