: Vue는 많은 기능을 가진 프론트엔드 개발 프레임워크와 생태계를 지니고 있다. 하지만 웹은 형태나 크기가 다양하다. 그래서 Vue는 유연하게 설계되었다.
: .vue 파일은 component logic(JavaScript), template(HTML), styles(CSS)를 단일 파일에 존재한다.
<script>
export default {
data() {
return {
count: 0
}
}
}
</script>
<template>
<button @click="count++">Count is: {{ count }}</button>
</template>
<style scoped>
button {
font-weight: bold;
}
</style>
: Vue component에서는 Options API와 Composition API 두가지 선택할 수 있다.
: script에서 사용할 수 있다. data, methods, mounted이 있으며, this로 함수내에서 정의할 수 있다.
: script setup으로 변경한 후에 사용 가능하다.
둘 중 무엇을 선택할까? 인터페이스적 차이가 있을 뿐 기능에 있어서 차이가 있지 않다. 다만 Options API는 Composition API 위에 구현되어 있다.
Options API는 OOP 언어 기반인 component instance의 개념에 위치해 있다. reactivity 세부 사항을 추상화 하고 Options 그룹을 통해 코드를 구성하여 초보자들에게 친숙하다. 빌드 툴을 사용하지 않거나 App이 덜 복잡한 경우에 사용
Composition API은 함수 범위 내에서 직접적인 선언형 상태 변수에 중심을 둔다. 그리고 복잡성을 처리하기 위해 여러기능의 상태를 함께 구성한다. 조금 더 자유로운 형식이며, 효율적인 사용을 위해서는 vue에서 reactivity가 어떻게 작동하는지 이해할 필요가 있다. 유연성은 구조화와 재사용에 있어서 조금 더 파워가 있다. Vue로 App전체를 빌드할 경우