WEB/Vue.js
[Vue.js] 레이아웃 컴포넌트
Raymond
2022. 7. 24. 16:29
레이아웃 컴포넌트
일반적인 웹사이트를 보면 고정적인 영역을 가지는 레이아웃을 가지고 있습니다. 이를 재사용 컴포넌트로써 만들어 보겠습니다.
project
|--src
|--component
| |--layouts
| |--HeaderLayout.vue
| |--FooterLayout.vue
|--App.vue
|--main.js
작동 순서
App.vue는 main.js에 import 되어 있으므로 App.vue에 레이아웃 컴포넌트를 배치를 하면 됩니다. App.vue에서 레이아웃 컴포넌트를 import를 한 이후에 해당 태그를 template안에 배치하여 레이아웃을 만들수 있습니다.
App.vue
<template>
<header-layout />
<div class="container">
<router-view />
</div>
<footer-layout />
</template>
<script>
import HeaderLayout from '@/components/layouts/HeaderLayout.vue'
import FooterLayout from '@/components/layouts/FooterLayout.vue'
export default {
components: { HeaderLayout, FooterLayout }
}
</script>
HeaderLayout.vue
router-link to="경로" 테그를 통해서 router에 정의한 path로 화면을 이동시킵니다.
<template>
<nav>
<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link> |
<router-link to="/databinding/string">String</router-link> |
<router-link to="/databinding/html">Html</router-link>
</nav>
</template>
FooterLayout.vue
부트스트랩 예제를 이용하여 만든 footer영역을 만들었습니다.
<template>
<div class="container">
<footer
class="d-flex flex-wrap justify-content-between align-items-center py-3 my-4 border-top"
>
<div class="col-md-4 d-flex align-items-center">
<span class="mb-3 mb-md-0 text-muted">© 2022 Company, Inc</span>
</div>
</footer>
</div>
</template>