[Vue] setup()

chaewonΒ·2024λ…„ 4μ›” 11일
0
post-thumbnail

✍🏻 setup()

  • setup()ν•¨μˆ˜λŠ” Composition API μ‚¬μš©μ„ μœ„ν•œ μ§„μž…μ  역할을 ν•œλ‹€. setup()ν•¨μˆ˜ μ•ˆμ— λ°˜μ‘ν˜• μƒνƒœλ‚˜ λ©”μ†Œλ“œ μ΄λŸ¬ν•œ 것듀을 μ„ μ–Έν•˜κ³  객체둜 λ°˜ν™˜(return)ν•˜λ©΄ <template>에 λ…ΈμΆœ ν•  수 μžˆλ‹€.
<template>
	<p>{{ counter }}</p>
</template>
import { ref } from "vue";
export default {
	setup() {
		const counter = ref(0);
		return {
			counter,
		};
	},
};
  • μ΄λ ‡κ²Œ counter둜 μ„ μ–Έν•˜κ³  return으둜 λ°˜ν™˜ν•˜μ—¬ template에 좜λ ₯ν•  수 μžˆλ‹€. return을 ν•˜μ§€ μ•ŠμœΌλ©΄ μ‚¬μš©ν•  수 μ—†λ‹€.


<template>
	<p>{{ counter }}</p>
  	<!-- λ²„νŠΌ 클릭 μ‹œ pνƒœκ·Έμ˜ counter이 ν•˜λ‚˜μ”© 올라 κ°„λ‹€. -->
	<button @click="increment">click!</button>
</template>
import { ref } from "vue";
export default {
	setup() {
		const counter = ref(0);
		//λ©”μ†Œλ“œ μ„ μ–Έ
		const increment = () => {
			counter.value++;
		};
		return {
			counter,
			increment,
		};
	},
};
  • λ©”μ†Œλ“œλ₯Ό μ„ μ–Έν•΄μ„œ templateμ•ˆμ—μ„œ μ‚¬μš©ν•  수 μžˆλ‹€.

1 setup() ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜

1-1 ✨props

  • setup()ν•¨μˆ˜μ˜ 첫번째 λ§€κ°œλ³€μˆ˜λŠ” propsλ‹€. propsλŠ” 객체λ₯Ό ꡬ쑰 λΆ„ν•΄ 할당을 ν•˜λ©΄ λ°˜μ‘μ„±μ„ μžƒκ²Œ λœλ‹€. λ”°λΌμ„œ props.xxxxν˜•μ‹μœΌλ‘œ props에 μ•‘μ„ΈμŠ€ν•˜λŠ” 것이 μ’‹λ‹€,

1-2 ✨context

  • setup()ν•¨μˆ˜μ˜ λ‘λ²ˆμ§Έ λ§€κ°œλ³€μˆ˜ context객체닀. setupν•¨μˆ˜λ‚΄μ—μ„œ μœ μš©ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλŠ” 속성을 가지고 μžˆλ‹€.
profile
μ˜λ¬Έμ€ 'μ‚Άμ˜ μˆ˜μ€€'을 κ²°μ •ν•˜κ³ , μ§ˆλ¬Έμ€ 'μ‚Ά 자체'λ₯Ό λ°”κΎΌλ‹€.

0개의 λŒ“κΈ€