๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ/Vue.js

Vue3 Composition API

by 1mj 2022. 4. 6.

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 :  ๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๋ฐ˜์‘ํ˜•, ํ•จ์ˆ˜ ๋‚ด์—์„œ ๊ฐ’์—๋ณ€์ˆ˜๋ช…์œผ๋กœ ๋ฐ”๋กœ ์ ‘๊ทผ

๋Œ“๊ธ€