Vue3에서 새롭게 도입된 컴포지션 API(Composition API) 는 기존 옵션 API와 달리,
setup() 함수 안에서 상태와 로직을 정의하고 이를 조합하는 방식이다.
즉, 상태와 로직을 함수 단위로 묶어내는 구조로, 코드 재사용성과 가독성을 높인다.
이 방식은 React의 Hooks와 개념적으로 닮아 있다.
ref, reactive, computed, watch, onMounted 등을 setup() 안에서 호출해 상태와 로직을 정의한다. React는 함수형 컴포넌트와 Hooks를 통해 상태와 로직을 관리한다.
useState, useEffect, useMemo, useCallback 등을 함수형 컴포넌트 안에서 호출한다. setState로 새 값을 교체해야 렌더링이 일어난다. | 관점 | Vue 컴포지션 API | React Hooks |
|---|---|---|
| 상태 관리 | ref, reactive → Proxy 기반 자동 추적 | useState → 불변성 원칙, setState로 교체 |
| 라이프사이클 | onMounted, onUnmounted 등 함수 호출 | useEffect로 사이드 이펙트 관리 |
| 로직 재사용 | Composable 함수 | Custom Hook |
| 철학 | “상태와 로직을 조합하는 함수” + 반응성 | “UI는 함수” + Hooks로 로직 조합 |
👉 한 줄 요약:
Vue 컴포지션 API는 React Hooks와 개념적으로 비슷하다.
둘 다 함수 기반으로 상태와 로직을 선언하고 조합하지만, Vue는 Proxy 기반 반응성을, React는 불변성과 Virtual DOM diffing을 활용한다.