차곡차곡

Vue.js 프로젝트 구조 본문

개발/vue.js

Vue.js 프로젝트 구조

whatd0udo 2024. 5. 2. 20:28

Vue 프로젝트 실행 구조 이해하기

vue
└─ project
   ├─ node_modules			# 설치된 node 모듈이 위치한 폴더. npm install 명령어를 통해 설치한 모듈이 위치한 곳.
   ├─ public				# index.html 파일이 위치한 곳 (정적 파일 위치)
   │  ├─ favicon.ico
   │  └─ index.html
   ├─ src					# 구현되는 vue 컴포넌트 파일이 위치하는 곳
   │  ├─ assets				# css, image 등 파일이 위치하는 곳
   │  │  └─ logo.png
   │  ├─ components			# Vue 컴포넌트 중에 재사용을 위해서 구현된 컴포넌트가 위치하는 곳
   │  │  └─ HelloWorld.vue
   │  ├─ router				# 라우팅을 정의하는 파일이 위치하는 곳
   │  │  └─ index.js
   │  ├─ store				# vuex의 상태저장소인 store 파일이 위치하는 곳
   │  │  └─ index.js
   │  ├─ views				# 웹 애플리케이션에서 각 화면, 즉 메뉴에 대응하는 화면에 해당하는 Vue 컴포넌트가 위치하는 곳
   │  │  ├─ AboutView.vue
   │  │  └─ HomeView.vue
   │  ├─ App.vue			# 최상위 Vue 컴포넌트
   │  └─ main.js			# Vue 프로젝트를 실행시켜 public/index.html에 마운트 시켜주는 파일
   ├─ .editorconfig
   ├─ .gitignore
   ├─ babel.config.js
   ├─ jsconfig.json
   ├─ package-lock.json
   └─ package.json			# Vue 프로젝트에 대한 정보 및 사용하고 있는 모듈 등에 대한 정보를 관리. Vue 프로젝트를 실행 할 수 있는 스크립트가 정의된 파일

1. vue 프로젝트 실행

Vue CLI의 vue-cli-serive serve를 호출하여 개벌 서버를 초기화하고 개발 서버는 애플리케이션의 코드를 실시간으로 컴파일하여 변경사항을 브라우저에 자동으로 적용함

npm run serve

2. main.js 파일 실행

main.js 파일은 Vue 앱을 시작하는 곳으로, 여기서 앱 인스턴스를 생성하고. 라우터, 상태관리 시스템을 설정하여 웹 애플리케이션 준비함.

3. 컴포넌트 마운트

main.js 파일에서 createApp 함수를 사용해 Vue앱 인스턴스를 생성하고 최상위 컴포넌트인 App.vue 를 Vue 앱 인스턴스에 마운트함.

4. 라우팅 및 모듈 처리

main.js 파일에서 Vue 라우터 , Vuex(상태관리 라이브러리), 믹스인 그리고 필요한 전역 모듈들을 로드하고 , Vue 앱 인스턴스에 등록함.

// vue / project / src / main.js
//createApp 함수를 사용하여 새로운 Vue 애플리케이션 인스턴스를 생성함.

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

createApp(App).use(store).use(router).mount('#app')

5. 내비게이션 및 라우팅 실행

App.vue 컴포넌트 내에서 라우터 뷰 ( router - view )를 사용해 URL에 따라 적절한 컴포넌트 렌더링

이 과정에서 내비게이션(경로 변경)이 처리되며, 해당하는 라우트 설정에 맞는 컴포넌트가 화면에 표시됨

<template>
  <nav>
    <router-link to="/">Home</router-link> |
    <router-link to="/about">About</router-link> |
    <router-link to="/Login">Login</router-link>
  </nav>
  <router-view/>
</template>

6. 컴포넌트의 DOM 마운트

App.vue 컴포넌트는 public/index.html 파일 내의 <div id="app"></div> 요소에 마운트 되며 이 과정을 통해 Vue앱의 UI가 웹 페이지에 렌더링되어 사용자게에게 보여짐.

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

Vue.js 이벤트  (0) 2024.05.03
Vue.js 데이터 바인딩  (0) 2024.05.03
Vue.js 라이프 사이클 훅  (0) 2024.05.03
Vue.js 개발 환경 설정  (0) 2024.05.02
Vue.js 프로젝트 시작  (1) 2024.05.02