# μ¬λ‘―μ μ΄μ©ν μ»΄ν¬λνΈ ν νλ¦Ώ νμ₯
μΈ λ²μ§Έλ‘ μ΄ν΄λ³Ό μ»΄ν¬λνΈ λμμΈ ν¨ν΄μ μ¬λ‘―μ μ΄μ©ν μ»΄ν¬λνΈ μ€κ³ λ°©λ²μ λλ€. μ¬λ‘― μ±ν°μμ μ΄λ―Έ μ΄ν΄λ΄€λ―μ΄ μ¬λ‘―μ νμ μ»΄ν¬λνΈμ ν νλ¦Ώμ μμ μ»΄ν¬λνΈμμ μ μ°νκ² νμ₯ν μ μλ κΈ°λ₯μ λλ€.
μ¬λ‘―μ ν, λͺ¨λ¬(νμ ), λ²νΌ λ± νν μ¬μ©λλ UI μ»΄ν¬λνΈλ₯Ό λͺ¨λ μ¬μ¬μ© ν μ μκ² λμμ€λλ€. μμ μ½λλ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€.
<!-- BaseButton.vue -->
<template>
<button type="button" class="btn primary">
<slot></slot>
</button>
</template>
<!-- App.vue -->
<template>
<div>
<!-- ν
μ€νΈλ‘ λ²νΌ μ΄λ¦λ§ μ μ -->
<base-button>Show Alert</base-button>
<!-- μμ΄μ½κ³Ό ν
μ€νΈλ‘ λ²νΌμ UI νμ₯ -->
<base-button>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M13 8V2H7v6H2l8 8 8-8h-5zM0 18h20v2H0v-2z"/></svg>
Download
</base-button>
</div>
</template>
<script>
import BaseButton from './BaseButton.vue';
export default {
components: {
BaseButton
}
}
</script>
μ μ½λλ λ²νΌμ μ΅μ λ§ν¬μ
μ κ°λ BaseButton μ»΄ν¬λνΈλ₯Ό μμ±ν ν μ¬λ‘―μ μ΄μ©νμ¬ λ²νΌμ λ΄μ©μ΄ νμ₯λ μ μκ² κ΅¬μ‘°νν μ½λμ
λλ€. BaseButton.vueμμ <slot>
νκ·Έλ₯Ό λ£μ΄λ¨κΈ° λλ¬Έμ BaseButton μ»΄ν¬λνΈλ₯Ό λ±λ‘νμ¬ μ¬μ©ν λ μμ μ»΄ν¬λνΈμμ ν
μ€νΈλ₯Ό λ£μ΄ λ²νΌμ μ΄λ¦λ§ λ°κΎΈκ±°λ, ν
μ€νΈμ μμ΄μ½μ ν¨κ» λ£μ΄ λ²νΌμ UIλ₯Ό κΎΈλ° μλ μμ΅λλ€.