VS Code 필요한 확장팩 설치
Vue (Official)

Live Server

Prettier - Code Formatter

Auto Rename Tag

HTMl CSS Support

HTML to CSS autocompletion

Code Runner

Korean Language Pack for Visual Studio

Vue 폴더 생성 후 code . 으로 VS Code 실행
Vue 폴더 안에 v01 폴더 만들고 ctrl shift `으로 터미널 열어줌
cd v01 입력해서 v01 폴더로 이동
npm create vue@latest .
입력한 다음 Package name 만 v01 입력
나머지는 다 No 선택해줌

npm install

npm run dev

서버 실행

{
"name": "v01",
"version": "0.0.0",
"private": true,
"type": "module",
"engines": {
"node": "^20.19.0 || >=22.12.0"
},
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"dependencies": {
"vue": "^3.5.26"
},
"devDependencies": {
"@vitejs/plugin-vue": "^6.0.3",
"vite": "^7.3.0",
"vite-plugin-vue-devtools": "^8.0.5"
}
}
애플리케이션 정보, 의존성 모듈 정보, 스크립트 명령어 정보들을 담고있음.
package.json 파일을 바탕으로 필수 패키지들이 설치가 진행되기 때문에 꼭 필요함
package-lock.json 파일은 지워도 다시 생성됨(중요 파일은 아님)
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="UTF-8">
<link rel="icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vite App</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>
npm run dev 했을 때 제일 먼저 참조하는 파일이 index.html 파일
js 파일을 실행해서 그 결과를
<div id="app"></div>
여기에 렌더링 시켜준다고 보면 됨
src/main.js
import './assets/main.css' // css 가져오겠다
import { createApp } from 'vue' // vue.js 에서 createApp을 가져와서 사용하겠다.
import App from './App.vue'
// ./App.vue 파일에서 export default 된 값을 가져와서, 그걸 App 이라는 이름으로 쓰겠다.
createApp(App).mount('#app')
// Vue 애플리케이션 하나를 생성함 App -> 루트(root) 컴포넌트
// -> 이 Vue 앱의 시작 컴포넌트는 App이다.
// .mount('#app')
// -> HTML에서 id="app"인 요소에 Vue 앱을 붙인다.(렌더링한다.)
// => App 컴포넌트를 루트로 하는 Vue 앱을 만들고, HTML의 #app 요소에 그려라.
// => index.html 에 있는 <div id="app"></div> Vue 가 이 div 안을 전부 App.vue 내용으로 교체함
<script setup>
import HelloWorld from './components/HelloWorld.vue'
import TheWelcome from './components/TheWelcome.vue'
</script>
<template>
<header>
<img alt="Vue logo" class="logo" src="./assets/logo.svg" width="125" height="125" />
<div class="wrapper">
<HelloWorld msg="You did it!" />
</div>
</header>
<main>
<TheWelcome />
</main>
</template>
<style scoped>
header {
line-height: 1.5;
}
.logo {
display: block;
margin: 0 auto 2rem;
}
@media (min-width: 1024px) {
header {
display: flex;
place-items: center;
padding-right: calc(var(--section-gap) / 2);
}
.logo {
margin: 0 2rem 0 0;
}
header .wrapper {
display: flex;
place-items: flex-start;
flex-wrap: wrap;
}
}
</style>
Vue 3에서는 script setup 사용해서 컴파일 시 자동으로 export default {...} 만들어줌
그래서 main.js에서
import App from './App.vue'
import 해서 사용할 수 있음.
확장팩으로 Auto Rename Tag 받으면 컴포넌트로 인식 못하고 self-closing 에 빨간줄 생김.
<script setup>
import HelloWorld from './components/HelloWorld.vue'
import TheWelcome from './components/TheWelcome.vue'
</script>
<template>
<!-- <header>
<img alt="Vue logo" class="logo" src="./assets/logo.svg" width="125" height="125" />
<div class="wrapper">
<HelloWorld msg="You did it!" />
</div>
</header>
<main>
<TheWelcome />
</main> -->
<h1>App.vue 파일</h1>
</template>
<style scoped>
header {
line-height: 1.5;
}
.logo {
display: block;
margin: 0 auto 2rem;
}
@media (min-width: 1024px) {
header {
display: flex;
place-items: center;
padding-right: calc(var(--section-gap) / 2);
}
.logo {
margin: 0 2rem 0 0;
}
header .wrapper {
display: flex;
place-items: flex-start;
flex-wrap: wrap;
}
}
</style>
template 태그 안에 주석처리하고 내용 바꿔주면 화면 바뀜
