Vue.js
기본 정보
- 이름: Vue.js
- 약칭: Vue
- 분류: JavaScript 프론트엔드 프레임워크
- 개발자: 에반 유(Evan You)
- 최초 공개: 2014년
- 개발 언어: JavaScript, TypeScript
- 주요 용도: SPA, 관리자 페이지, 웹 애플리케이션 개발
- 관련 주제: #Vue #Vuejs #JavaScript #Frontend #SPA
개요
Vue.js는 사용자 인터페이스(UI)를 구축하기 위한 오픈소스 JavaScript 프레임워크이다.
간결한 문법과 낮은 진입 장벽으로 빠르게 웹 애플리케이션을 개발할 수 있으며, 컴포넌트(Component) 기반 구조를 사용하여 재사용성과 유지보수성을 높일 수 있다.
특히 관리자 페이지(Admin), ERP, CMS, 대시보드 등에서 많이 활용되며, 점진적(Progressive) 도입이 가능하다는 특징이 있다.
주요 특징
- 컴포넌트 기반 개발
- 반응형(Reactivity) 데이터 시스템
- Virtual DOM 사용
- 쉬운 문법
- 양방향 데이터 바인딩 지원
- SPA 개발에 적합
- TypeScript 지원
Vue 구조
Browser
↓
Vue App
↓
Component
↓
Virtual DOM
↓
Real DOM
↓
화면 출력
Hello World
<template>
<h1>Hello Vue</h1>
</template>
Single File Component(SFC)
Vue는 .vue 파일 하나에 HTML, JavaScript, CSS를 함께 작성할 수 있다.
<template>
</template>
<script setup>
</script>
<style>
</style>
Template
화면(UI)을 정의하는 영역이다.
<template>
<h1>{{ title }}</h1>
</template>
Script
비즈니스 로직을 작성한다.
<script setup>
const title = "Vue.js";
</script>
Style
컴포넌트 전용 스타일을 정의한다.
<style scoped>
h1{
color:red;
}
</style>
scoped를 사용하면 해당 컴포넌트에만 CSS가 적용된다.
반응형 데이터
import { ref } from 'vue'
const count = ref(0)
값이 변경되면 화면도 자동으로 갱신된다.
이벤트 처리
<button
@click="count++"
>
클릭
</button>
조건부 렌더링
<div
v-if="login"
>
로그인 완료
</div>
대표 디렉티브
v-ifv-elsev-show
반복문
<li
v-for="item in list"
:key="item.id"
>
{{ item.name }}
</li>
배열 데이터를 반복 출력할 수 있다.
양방향 바인딩
<input
v-model="name"
/>
입력값과 변수 값이 자동으로 동기화된다.
Props
부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달한다.
defineProps({
name:String
})
사용 예
<User
name="구름"
/>
Emit
자식 컴포넌트가 부모 컴포넌트에 이벤트를 전달한다.
const emit =
defineEmits(
['save']
)
Composition API
Vue 3에서 권장하는 개발 방식이다.
<script setup>
import {
ref
}
from 'vue'
</script>
Router
SPA 화면 이동을 담당한다.
대표 라이브러리
- Vue Router
createRouter({
routes:[
]
})
상태 관리
대표 라이브러리
- Pinia
- Vuex
Vue 3에서는 Pinia 사용이 권장된다.
API 통신
대표 라이브러리
- Fetch API
- Axios
axios.get(
"/api/user"
)
프로젝트 구조
src/
├── components/
├── views/
├── router/
├── stores/
├── assets/
├── layouts/
├── composables/
└── App.vue
빌드 도구
대표 도구
- Vite
- Vue CLI
현재는 Vite 사용이 일반적이다.
Nuxt
Vue 기반의 풀스택 프레임워크이다.
주요 기능
- SSR
- SSG
- SEO 최적화
- API 서버
- 파일 기반 라우팅
주요 활용 분야
- 관리자 페이지
- ERP
- CMS
- 쇼핑몰
- SaaS
- 대시보드
- 모바일 웹
- SPA
장점
- 배우기 쉬움
- 문법이 직관적
- 반응형 시스템 제공
- 컴포넌트 재사용 가능
- 프로젝트 규모 확장 용이
- 공식 문서가 우수함
단점
- React보다 생태계가 작음
- 대규모 프로젝트에서는 구조 설계가 중요
- 다양한 개발 방식(Options API, Composition API) 혼재 가능
실무 메모
실무에서는 다음과 같은 방식이 권장된다.
- Vue 3 사용
- Composition API 적용
- TypeScript 적용
- Pinia 상태 관리
- Axios 기반 API 통신
- Vite 기반 프로젝트 생성
- Auto Import 활용
- Lazy Loading 적용
- ESLint + Prettier 적용
- Feature 기반 폴더 구조 설계
Vue.js와 함께 사용하는 기술
대표 개발 도구
- Visual Studio Code
- Vue DevTools
- Vite
- npm
- pnpm
- Yarn
관련 문서
출처
- Vue.js 공식 홈페이지
- Vue.js 공식 가이드
- Evan You 발표 자료