<aside> 💡
초기버전부터 기본적으로 사용되던 구성 방식으로, 컴포넌트를 여러 개의 옵션(data
, methods
, computed
, watch
, mounted
, 등)으로 구분해서 정의하는 API 방식
</aside>
export default {
data() {
return {
count: 0
};
},
methods: {
increment() {
this.count++;
}
}
};
특징:
옵션별로 구분
되어 있음this
키워드를 많이 사용Vue 3에서 새롭게 도입된 방식으로, setup()
함수 안에서 로직 중심
으로 컴포넌트를 구성하는 API입니다. reactive()
, ref()
, computed()
등 함수를 통해 상태 및 기능을 선언합니다.
import { ref } from 'vue';
export default {
setup() {
const count = ref(0);
const increment = () => {
count.value++;
};
return { count, increment };
}
};
특징:
this
대신 변수 사용 (ref
, reactive
등)항목 | Options API | Composition API |
---|---|---|
버전 | Vue 2.x 중심 | Vue 3.x에서 도입 |
구조 | 옵션 중심 (data , methods 등으로 분리) |
기능 중심 (setup() 안에 모든 로직) |
상태 관리 | this.count 와 같은 방식 |
ref , reactive 사용 |
재사용성 | mixin 활용 (복잡, 한계 있음) | Composable 함수로 재사용 용이 |
가독성 | 간단한 컴포넌트는 직관적 | 복잡한 로직도 명확하게 정리 가능 |
this 사용 | 많이 사용함 | 사용 안함 (setup 에서는 this 없음) |
대표 키워드 | data , methods , watch , mounted |
setup , ref , reactive , computed |