이번 게시글에서는vue-router를 적용해보고 프로젝트를 실행해보겠습니다.

 

Vue-Router란?

- 특정 url에 접근하였을때 url마다 선언한 component vue로 화면을 보여주며, 하나의 페이지로 여러 화면을 보여주는 SPA를 개발할수 있게 해주는 라이브러리 입니다.

npm add vue-router@next

- 터미널에 해당 명령어를 입력해서 vue-rotuer를 설치합니다.

 

- src 폴더 밑에 router 폴더를 만들고 index.js 파일을 만듭니다. 그리고 src 폴더 밑에 views 폴더를 만들고 LoginView.vue, MainView.vue 파일을 만듭니다.

 

index.js

import { createWebHistory, createRouter } from "vue-router";
import Main from "@/views/MainView.vue";
import Login from "@/views/LoginView.vue";

const routes = [
  {
    path: "/",
    name: "Main",
    component: Main,
  },
  {
    path: "/login",
    name: "Login",
    component: Login,
  },
];

const router = createRouter({
    history: createWebHistory(),
    routes,
});

export default router;


LoginView.vue

<template>
  <h1>Login Page</h1>
</template>

 

MainView.vue

<template>
  <h1>Main Page</h1>
</template>

 

App.vue

<template>
  <router-view />
</template>

 

main.js

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'

const app = createApp(App)

app.use(router).mount('#app')

 

npm run build
npm run serve

- 해당 명령어를 VsCode 터미널에 입력합니다.

 

 

이번에는 vue-router를 이용해서 header, footer를 추가합니다.

 

src/views/layout 폴더를 생성후 그안에 FooterView.vue, HeaderView.vue를 생성합니다.

 

FooterView.vue

<template>
    <br><br>
    <div class="footer">made by jaeSung</div>
</template>

 

HeaderView.vue

<template>
  <div id="nav">
    <router-link class="menu" to="/">Main</router-link> | 
    <router-link class="menu" to="/login">Login</router-link>
  </div>
</template>

 

App.vue

<template>
  <Header />
  <router-view />
  <Footer />
</template>

<script>
import Header from './views/layout/HeaderView.vue';
import Footer from './views/layout/FooterView.vue';

export default {
  name: 'App',
  components: {
    Header,
    Footer
  }
}
</script>

 

결과화면

 

'vue.js' 카테고리의 다른 글

Vue 예제 - BootStrap Vue 적용  (0) 2022.12.27
VsCode 것허브 연동 커밋  (0) 2022.12.27
2. Vue 예제 - VsCode 플러그인 사용해보기  (0) 2022.12.27
1. vue 예제 - Vue 프로젝트 생성  (0) 2022.12.27
복사했습니다!