๐Ÿ“š Reference


๐Ÿ“œย Chapter


defineModel()

defineProps()

defineEmits()


์‚ฌ์šฉ๋ฒ•


<script setup>
// ๋Ÿฐํƒ€์ž„ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•œ ๋ฐฐ์—ด ๋˜๋Š” ๊ฐ์ฒด ์ „๋‹ฌ (JavaScript ๋ฐฉ์‹)
const emit = defineEmits(['update', 'submit']);

// ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ emit ํ•จ์ˆ˜ ์‚ฌ์šฉ
const handleClick = () => {
  // 'submit' ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ  ์ธ์ž(ํŽ˜์ด๋กœ๋“œ)๋ฅผ ์ „๋‹ฌ
  emit('submit', { data: 'payload' });
};
</script>
<script setup lang="ts">
// ๐Ÿ’ก defineEmits ๋’ค์— ์ œ๋„ค๋ฆญ์œผ๋กœ ์ด๋ฒคํŠธ ์‹œ๊ทธ๋‹ˆ์ฒ˜๋ฅผ ์ •์˜
const emit = defineEmits<{
  // ์ด๋ฒคํŠธ ์ด๋ฆ„: (์ธ์ž1์˜ ํƒ€์ž…, ์ธ์ž2์˜ ํƒ€์ž…, ...)
  (e: 'update', value: string): void;
  (e: 'submit', payload: { data: string }): void;
}>();

// emit ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ TypeScript๊ฐ€ ์ธ์ž ํƒ€์ž…์„ ๊ฒ€์‚ฌํ•ด ์ค๋‹ˆ๋‹ค.
emit('update', 'new value');
</script>