사용자 인터페이스를 구축하기 위한 JavaScript 프레임워크로 표준 HTML, CSS, JS 를 기반으로 구축되고 컴포넌트 기반 프로그래밍 모델을 제공한다.
컴포넌트의 논리 (JavaScript), 템플릿(HTML), 스타일(CSS)를 하나의 파일에 캡슐화하여 묶어낸 특수한 파일 형식으로, *.vue
파일이라고도 한다.
<script>
export default {
data() {
return {
greeting: '안녕 Vue!'
}
}
}
</script>
<template>
<p class="greeting">{{ greeting }}</p>
</template>
<style>
.greeting {
color: red;
font-weight: bold;
}
</style>
SFC 사용을 위해서는 빌드 방식을 따라야 하지만,
위와 같은 이점을 이용한다.
Vue 컴포넌트는 옵션(options) API 와 컴포지션(Composition) API 두가지 스타일로 작성할 수 있다.
data
, methods
, mounted
와 같은 객체를 사용하여 컴포넌트의 로직을 정의한다. 옵션이 정의된 속성은 컴포넌트 인스턴스를 가리키는 함수 내부의 this
에 노출된다.<script>
export default {
// data()에서 반환된 속성들은 반응적인 상태가 되어 `this`에 노출됩니다.
data() {
return {
count: 0
}
},
// methods는 속성 값을 변경하고 업데이트 할 수 있는 함수.
// 템플릿 내에서 이벤트 리스너로 바인딩 될 수 있음.
methods: {
increment() {
this.count++
}
},
// 생명주기 훅(Lifecycle hooks)은 컴포넌트 생명주기의 여러 단계에서 호출됩니다.
// 이 함수는 컴포넌트가 마운트 된 후 호출됩니다.
mounted() {
console.log(`숫자 세기의 초기값은 ${ this.count } 입니다.`)
}
}
</script>
<template>
<button @click="increment">숫자 세기: {{ count }}</button>
</template>
import
해서 가져온 API 함수들을 사용해서 컴포넌트의 로직을 정의한다. SFC 에서 일반적으로 <script setup>
에 import
되어 가져온 객체들과 선언된 최상위 변수 및 함수를 직접 사용하여 Vue가 더 적은 코드 문맥으로 컴파일 시 의도한 대로 올바르게 동작할 수 있게 코드를 변환하도록 한다.
<script setup>
import { ref, onMounted } from 'vue'
// 반응적인 상태의 속성
const count = ref(0)
// 속성 값을 변경하고 업데이트 할 수 있는 함수.
function increment() {
count.value++
}
// 생명 주기 훅
onMounted(() => {
console.log(`숫자 세기의 초기값은 ${ count.value } 입니다.`)
})
</script>
<template>
<button @click="increment">숫자 세기: {{ count }}</button>
</template>
npm install vue
npm 을 통해 vue 를 다운한다.
VSCode - Terminal - New Terminal
npm install -g @vue/cli
vue 개발 환경을 세팅한다.
vue create 프로젝트명
npm 명령어를 사용하는 것 처럼 vue.Js 프로젝트를 사용하기 위해서 vue 명령어를 이용하여 프로젝트를 생성한다.
vue 대신 npx @vue/cli create 프로젝트명
을 이용해서 생성할 수도 있다.
<template>
태그는 html 코드를
<script>
태그는 javascript 코드를,
<style>
태그는 css 코드르 짠다.
이력서를 넣어보는 회사들 중에서 Vue 프레임워크를 사용하는 곳들을 종종 보았다. 이를 기회 삼아 새로운 언어를 배우는 것에 있어서 흥미가 솔솔 생겼고, 이 참에 공식 문서를 이용해서 공부해보고자 한다.