안녕하세요, 코딩하는곰입니다! 😊
오늘은 Vue 3의 혁신적인 기능인 Composition API에 대해 깊이 있게 알아보겠습니다.
20년 넘게 Vue.js와 Angular를 다루어 온 경험을 바탕으로, Composition API의 핵심 개념부터 실전 활용 팁까지 상세히 설명드리겠습니다.
초보자도 쉽게 이해할 수 있도록 단계별로 구성했으니 끝까지 함께해주세요!
Vue 2의 Options API는 직관적이지만 대규모 애플리케이션에서는 한계가 있었습니다.
// Options API vs Composition API 비교// Options APIexport default {data() {return { count: 0 }},methods: {increment() { this.count++ }}}// Composition APIimport { ref } from 'vue'export default {setup() {const count = ref(0)const increment = () => count.value++return { count, increment }}}
🔧 새로운 기술을 배우고 싶다면, (자바 기초) 업캐스팅과 다운캐스팅 완벽 이해하기 - 다형성과 형변환 예제를 참고해보세요.
ref와 reactive는 Composition API의 두 축입니다.
| 특징 | ref | reactive |
|------------|--------------------|--------------------|
| 사용 대상 | 기본형/객체 | 객체만 가능 |
| 접근 방식 | .value 필요 | 직접 접근 |
| TS 지원 | 더 우수함 | |
import { ref, reactive } from 'vue'// ref 사용 예제const counter = ref(0)console.log(counter.value) // 0// reactive 사용 예제const state = reactive({user: { name: '곰돌이', level: 99 }})console.log(state.user.name) // '곰돌이'
watch와 computed 활용법:
import { watch, computed } from 'vue'// computedconst doubleCount = computed(() => count.value * 2)// watchwatch(count, (newVal, oldVal) => {console.log(`카운트 변경: ${oldVal} → ${newVal}`)}, { immediate: true })
정확한 시간 기록이 필요한 실험이나 트레이닝에는 실시간 스톱워치 기능을 활용하는 것이 좋습니다.
로직 재사용을 위한 Composables:
// useCounter.jsimport { ref } from 'vue'export function useCounter(initialValue = 0) {const count = ref(initialValue)const increment = () => count.value++return { count, increment }}// 컴포넌트에서 사용import { useCounter } from './useCounter'export default {setup() {const { count, increment } = useCounter(10)return { count, increment }}}
Lifecycle Hooks 사용법:
import { onMounted, onUnmounted } from 'vue'export default {setup() {onMounted(() => console.log('마운트 완료!'))onUnmounted(() => console.log('언마운트!'))}}
성능 최적화 팁:
🔍 참여 가능한 공연, 전시, 대회 정보를 찾고 있다면, 영주 시원(ONE)축제를 참고해보세요.
Composition API는 Vue 개발의 새로운 패러다임을 열었습니다.
처음엔 어렵게 느껴질 수 있지만, 한번 익히면 기존보다 훨씬 유연한 코드 작성이 가능해집니다.
궁금한 점이 있으면 댓글로 남겨주세요!
다음 포스팅에서는 Composition API와 TypeScript의 시너지 효과에 대해 다룰 예정입니다.
코딩하는곰이었습니다! 🐻💻
#SEO: 본문 내 키워드 자연스럽게 15회 이상 사용, 헤더 태그(H2/H3) 활용, 코드 예제로 체류 시간 증가, 관련 키워드 internal linking 계획
AI가 분석한 로또 번호 추천을 받고 싶다면, QR코드 스캔과 통계 기능을 제공하는 지니로또AI 앱이 도움이 될 것입니다.
