개발/Vue.js

Vue3 Composition API

1mj 2022. 4. 6. 11:00

Composition API λž€?

 Composition APIλŠ” μ»΄ν¬λ„ŒνŠΈ λ‘œμ§μ„ μœ μ—°ν•˜κ²Œ ꡬ성할 수 μžˆλ„λ‘ ν•˜λŠ” ν•¨μˆ˜ 기반 API이닀. κΈ°μ‘΄μ—λŠ” data, methods, computed에 둜직이 λΆ„λ¦¬λ˜μ–΄ μžˆμ–΄ 데이터가 μ–΄λ””μ—μ„œ μ‚¬μš©λ˜λŠ”μ§€ νŒŒμ•…ν•˜κΈ° νž˜λ“€μ—ˆλ‹€. μ»΄ν¬λ„ŒνŠΈμ˜ 계측ꡬ쑰가 λ³΅μž‘ν•΄μ§€κ±°λ‚˜ ν”„λ‘œμ νŠΈ 규λͺ¨κ°€ 컀지면 μΆ”μ²™ 및 관리에 어렀움이 μžˆλ‹€.

 

 μ»΄ν¬μ§€μ…˜ APIλŠ” setup() μ΄λΌλŠ” λ©”μ„œλ“œ μ•ˆμ— λ‘œμ§μ„ λͺ¨μ•„λ†“λŠ” ꡬ쑰이닀. 데이터가 μ–΄λ–»κ²Œ λ³€ν™”ν•˜κ³  μ‚¬μš©λ˜λŠ”μ§€ κ·Έλ£Ήν•‘ν•˜μ—¬ λ°μ΄ν„°μ˜ 흐름 νŒŒμ•…μ΄ 쉽고 μœ μ§€λ³΄μˆ˜μ— μš©μ΄ν•˜λ‹€.

 

Setup ν•¨μˆ˜

μ»΄ν¬λ„ŒνŠΈ κ°μ²΄μ—μ„œ μ†μ„±μœΌλ‘œ λΆ„λ¦¬λ˜μ—ˆλ˜ κΈ°λŠ₯ λŒ€λΆ€λΆ„(data, methods, computed)을 setup ν•¨μˆ˜ μ•ˆμ—μ„œ μ‚¬μš©ν•  수 μžˆλ‹€. λ˜ν•œ, setupλŠ” beforeCreate, created ν›…κ³Ό 같은 라이프사이클을 κ°€μ§€λŠ” μΌμ’…μ˜ ν›…κ³Ό κ°™λ‹€. λ°˜μ‘ν˜• 데이터λ₯Ό 바인딩해주고 λ‹€λ₯Έ ν•¨μˆ˜ 속성듀을 μ •μ˜ν•΄μ€„ 수 μžˆλ‹€.

 

- 라이프사이클 ν•¨μˆ˜ μ‚¬μš©ν•˜κΈ°

beforeCreate / created → setup()

λ‚˜λ¨Έμ§€λŠ” on 접두사 λΆ™μ—¬μ„œ μ‚¬μš© ex) beforeMount → onBeforeMount

 

- λ°˜μ‘ν˜• data μ‚¬μš©ν•˜κΈ°

ref : μ›μ‹œ κ°’ 및 κ°μ²΄λ‚˜ 배열에 λ°˜μ‘ν˜•, ν•¨μˆ˜ λ‚΄μ—μ„œ 값에 μ ‘κ·Όν•  λ•ŒλŠ” λ³€μˆ˜λͺ….value둜 μ ‘κ·Ό, return μ‹œ λ³€μˆ˜λͺ….value둜 μ ‘κ·Ό

reactive :  κ°μ²΄λ‚˜ 배열을 μ‚¬μš©ν•˜λŠ” κ²½μš°μ—λ§Œ λ°˜μ‘ν˜•, ν•¨μˆ˜ λ‚΄μ—μ„œ κ°’μ—λ³€μˆ˜λͺ…μœΌλ‘œ λ°”λ‘œ μ ‘κ·Ό