1. Options API (옵션스 API)

<aside> 💡

초기버전부터 기본적으로 사용되던 구성 방식으로, 컴포넌트를 여러 개의 옵션(data, methods, computed, watch, mounted, 등)으로 구분해서 정의하는 API 방식

</aside>

export default {
  data() {
    return {
      count: 0
    };
  },
  methods: {
    increment() {
      this.count++;
    }
  }
};

특징:


2. Composition API (컴포지션 API)

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 };
  }
};

특징:


3. Options API vs Composition API 비교

항목 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