본문 바로가기
Programming/Vue

뷰(Vue) 프로젝트 기본 파일(main.js / index.html / App.vue) 구조 및 동작 흐름도 (Workflow)

by 돌방로그 2022. 12. 8.

제목의 글을 설명하기에 앞서 정보전달의 목적도 있지만, 

제가 잊지않기 위해서 공부 및 정리하며 쓰는 글이라는 사실을 미리 고지합니다.

 

혹시라도 오입력된 정보가 있다면, 댓글 남겨주세요!


Vue.js 개발하기 전, Vue.js 프로젝트에 대한 기본 구조를 공부하고 정리한 내용입니다.

Vue.js의 기본 구조를 잘 아시는 분들이라면 다음 단계를 진행하시면 됩니다.

 


뷰 프로젝트 기본 파일

뷰 프로젝트 생성시 기본적으로 생성되는 파일이며, 구동시 필요한 가장 최소한의 파일은 main.js / index.html / App.vue로 총 3가지가 있습니다.

 

파일 호출 흐름도

( 아래 과정은 main.js가 먼저라는 얘기도 있고 index.html이 먼저라는 얘기도 있어서 확실하지는 않습니다만, 제가 이해한 방향대로 작성해보았습니다. )

뷰 프로젝트가 npm 명령어로 실행되는 경우, 아래의 파일 호출 흐름에 따라서 구동 및 화면에 마운트가 되어집니다.

1. main.js를 통해 뷰의 다양한 요소를 등록하고 생성하는 과정 진행

2. 웹 애플리케이션의 전반적인 화면 정보 및 영역을 지정하고 main.js의 화면 시작 지점을 마운트할 준비를 합니다.

3. 최상위 컴포넌트인 App.vue를 통해 하위 컴포넌트의 기능 및 화면에 그려질 영역을 2의 main.js에서 지정한 화면 영역에 표시(마운트)합니다. 

 


파일 종류

main.js

뷰 웹 애플리케이션의 시작점이자 진입점으로 활용되는 파일로 Vue 초기화, 전역 혹은 컴포넌트, 라이브러리 등 다양한 요소를 등록하는 파일입니다.

파일은 '{root}\src\main.js'에 위치하고 있습니다. 

 

기본 형식

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

createApp(App)
.mount('#app');
  • createApp(): 앱 인스턴스(App Instance)를 생성하며, 뷰 애플리케이션의 시작점을 의미합니다.
  • mount(): 앱 인스턴스(App Instance)를 렌더링합니다. 

index.html

뷰 웹 애플리케이션 구동시 마운팅 결과를 브라우저에 표시되는 화면 영역을 관리하는 html 파일입니다. 

파일은 '{root}\public\index.html'에 위치하고 있습니다.

 

기본 형식

<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title><%= htmlWebpackPlugin.options.title %></title>
  </head>
  <body>
    <noscript>
      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>
  • <head>: 페이지를 열 때 브라우저에 표시되지 않고 페이지에 대한 내용/정보를 표시하는 요소
    • <meta>: 데이터를 설명하는 메타 데이터로 Character encoding 혹은 저작자 정보를 표시
    • <link>: 페이지 대표 아이콘 링크
    • <title>: html 문서 전체의 타이틀을 표현하기 위한 메타 데이터
  • <body>: 페이지를 열 때 브라우저에 표시되는 요소
    • <noscript>: 사용자의 브라우저가 스크립트의 사용을 비활성화하거나 지원하지 않는 경우에 표시할 내용을 담은 태그
    • <div id="app">: main.js에서 최상위 컴포넌트를 마운팅하여 표시할 지점을 담은 태그

App.vue

뷰 웹 애플리케이션의 최상위 컴포넌트로 하위 여러 컴포넌트를 통합으로 관리하는 컴포넌트 파일입니다.

파일은 '{root}\src\App.vue'에 위치하고 있습니다.

 

기본 형식

<template>
</template>

<script>
export default {
    name: 'App'
}
</script>

<style>
</style>

 

뷰 파일 구조에 대한 자세한 사항은 아래 링크를 참조해주세요. 

https://logs-jejustone.tistory.com/16

 

[Vue] 뷰(.vue) 파일 구조 - 싱글 파일 컴포넌트 체계

제목의 글을 설명하기에 앞서 정보전달의 목적도 있지만, 제가 잊지않기 위해서 공부 및 정리하며 쓰는 글이라는 사실을 미리 고지합니다. 혹시라도 오입력된 정보가 있다면, 댓글 남겨주세요!

logs-jejustone.tistory.com

 

 


References

 

Do it! Vue.js 입문 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

 

Application API | Vue.js

 

v3-docs.vuejs-korea.org

 

 

댓글