Vue-Composition API

2021. 8. 27. 17:19ใ†vue

Vue-Composition API

 

 

Vue์—์„œ๋Š” Option API๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ ๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ Composition API๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•œ๋‹ค.

 

 

Option API๋ฐฉ์‹์€ ๋œป ๊ทธ๋Œ€๋กœ Vue์—์„œ ์ œ๊ณตํ•˜๋Š” ์˜ต์…˜ ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด data(), methods, computed์™€ ๊ฐ™์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ง์ด๋‹ค.

 

 

๋ฐ˜๋Œ€๋กœ Composition์€ setup()์ด๋ผ๋Š” ๊ฒƒ ์•ˆ์— ๋ชจ๋“  ๊ฒƒ์„ ์ •์˜ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. 

 

 

๊ทธ๋Ÿผ ์™œ Composition API๋ฅผ ์‚ฌ์šฉํ• ๊นŒ?

 

 

์ž‘์€ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ Option API๋ฐฉ๋ฒ•์œผ๋กœ ์ง„ํ–‰ํ–ˆ์„ ๋•Œ ์ƒ๊ด€์ด ์—†๋‹ค. 

ํ•˜์ง€๋งŒ ์กฐ๊ธˆ ๊ทœ๋ชจ๊ฐ€ ์ปค์กŒ์„ ๋•Œ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ด๋™์ถ”์ ์„ ํ•˜๋ ค๋ฉด ์ผ์ผํžˆ ์ฐพ์•„์•ผํ•˜๋ฉฐ ๋งŽ์€ ๋ฐ์ดํ„ฐ์™€ ๋งŽ์€ ํ•จ์ˆ˜๊ฐ€ ์žˆ๊ธฐ ๋–„๋ฌธ์— ์Šคํฌ๋กค๋„ ๋งŽ์ดํ•ด์•ผํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์ƒ๊ธด๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด ๋•Œ Composition์„ ํ•˜๋ฉด ๋ฐ์ดํ„ฐ์ถ”์ ์ด ์šฉ์ดํ•ด์ง„๋‹ค.

 

 

export default {
	setup() {
    	let age ="10";
        let name ="minsu";
    };
    
    return {age, name};
}

 

 

 

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ์ ์€ let age ="10";์—์„œ age๋Š” ๋ฐ˜์‘ํ˜•์ด ์•„๋‹Œ ์ƒํƒœ์ด๋‹ค. ์ฆ‰ ์ˆซ์ž๋ฅผ ๋ฐ”๊พธ๋ฉด ๋ฐ”๋กœ๋ฐ”๋กœ ๋ฐ˜์‘ํ•ด์„œ ํ™ˆํŽ˜์ด์ง€์— ์ ์šฉ์ด ์•ˆ๋œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ์œ„ํ•ด์„œ ์šฐ๋ฆฌ๋Š” "ref"๋‚˜ "reactive"๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

ref VS reactive

 

 

ref๋Š” String์ด๋‚˜ Number์™€ ๊ฐ™์€ ์›์‹œํƒ€์ž…๋„ ๋ฐ˜์‘ํ˜•์œผ๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

reactive๋Š” ์›์‹œํƒ€์ž…์€ ๋ฐ˜์‘ํ˜•์œผ๋กœ ํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋–„๋ฌธ์— ๋ณดํ†ต Array๋‚˜ Objectํ˜•์‹๋งŒ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ ์ด์™•์ด๋ฉด ref๋กœ ํ†ต์ผํ•˜๋Š” ๊ฒŒ ๊ด€๋ก€์ ์œผ๋กœ ์ข‹๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

๊ทธ๋Ÿผ ์ด์ œ ์‚ฌ์šฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž.

 

 

import { ref } from "vue";

export default {
  name: "HOME",
  setup() {
    const person = ref({ name: "jisu", age: 25 });

    const Click = () => {
      person.value.age = 30;
    };
     return { person, handleClick };
  }
};

 

 

๋จผ์ € vue๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ๋ถ€ํ„ฐ ref๋ฅผ ๊ฐ€์ ธ์˜จ ํ›„ setup์„ ๋˜‘๊ฐ™์ด ์ •์˜ํ•ด์ค€๋‹ค. 

ref์—๋‹ค๊ฐ€ ๊ฐ’์„ ์ €์žฅํ•ด๋†จ๊ธฐ ๋•Œ๋ฌธ์— value๋ผ๋Š” ์†์„ฑ์„ ํ•œ๋ฒˆ ๊ฑฐ์น˜๊ณ  ์‹ค์ œ์†์„ฑ์— ์ ‘๊ทผํ•ด์•ผํ•œ๋‹ค.

 

 

person.age๊ฐ€ ์•„๋‹Œ person.value.age์ฒ˜๋Ÿผ ๋ง์ด๋‹ค.

 

 

๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ๋ฐ˜์‘ํ˜•์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.