Web/Front - Vue

Vue_화면 분할

잉_민 2022. 2. 14. 16:15
728x90
반응형

https://getbootstrap.com/docs/4.6/layout/overview/

 

Overview

Components and options for laying out your Bootstrap project, including wrapping containers, a powerful grid system, a flexible media object, and responsive utility classes.

getbootstrap.com

뷰 문서를 확인하여 코드를 구성한다.

 

다음과 같이 Header, Sidebar, Content로 세부분으로 나눈다.

다음의 위치에 각각의 파일을 생성 한다. (파일 내용은 타이틀만 써주자)

Header 파일: /src/components/layout/Header.vue

Sidebar 파일: /src/components/layout/Sidebar.vue

Content 파일: /src/views/Home.vue

NotFound처리 파일도 생성 한다.

NotFound 파일: /src/components/NotFound.vue

App.vue 파일 구조(헤더와 하단 부분)

App.vue파일에서 Header와 하단 부분으로 나눈다.

/src/App.vue

<template>
<div>
<app-header />
<router-view />
</div>
</template>

<script>
import Header from './components/layout/Header'

export default {
  components: {
    'app-header': Header
  }
}
</script><style src="./assets/style/main.css"></style>

index.js 파일 생성(좌측 메뉴와 컨텐츠 부분)

/src/views/index.vue파일을 통해 Sidebar와 Content 두 부분으로 나눈다.

/src/views/index.vue

<template>
  <div>
    <div class="separate-body"></div>
    <b-container fluid style="padding-left: 0px">
      <b-row>
        <!-- Side bar -->
        <b-col cols="2" style="padding-right: 0px">
          <app-sidebar />
        </b-col>
        <!-- Body contents -->
        <b-col style="padding-left: 0px; padding-right: 0px">
          <div class="content-body">
            <router-view />
          </div>
        </b-col>
      </b-row>
    </b-container>
  </div>
</template>

<script>
import Sidebar from '../components/layout/Sidebar'

export default {
  components: {
    'app-sidebar': Sidebar
  }
}
</script>

<router-view />부분의 코드를 통해 Router설정 에서 component로 import한 파일이 사용된다.

 

not found code

<template>
  <div style="text-align: center; padding-top: 20px">
    <h1 class="text-60">404</h1>
    <p class="text-36 subheading mb-3">Page not found!</p>
    <p class="mb-5 text-muted text-18">Sorry! The page you were looking for doesn't exist.</p>
    <a class="btn btn-lg btn-primary btn-rounded" href="/">Go back to home</a>
  </div>
</template>

<script>
export default {}
</script>

<style lang="scss" scoped></style>

 

 

728x90
반응형