슬롯을 사용하기 위해서는 기본 틀을 만들고 slot 코드를 사용하면 된다.
slot name="header"
과 같이 이름을 지정해줘야하지만, 하나의 영역일 경우에는 slot에 name
을 사용하지 않아도 된다.BaseLayout.vue
<BaseLayout>
<template v-slot:header>
<!-- header slot -->
</template>
</BaseLayout>
BaseCard.vue
<template>
<div class='container'>
<header>
<slot name='header'></slot>
</header>
<h3 class='m-2'>
{{ title }}
</h3>
<div class='border-[1px] border-black-200' />
<slot />
</div>
</template>
<script lang='ts'>
export default {
props: {
title: {
type: String,
default: "Fill title here",
},
},
};
</script>
v-slot는 위와 같이 디렉티브를 사용해서 동일한 이름의 slot 위치로 html 코드가 삽입된다.