데일리 공부 기록
hands on vue - slot 여러개 해보기
탐훈
2023. 3. 9. 23:52
728x90
[목표]
1. 부모의 컴포넌트를 자식컴포넌트에서 사용하는 slot에 대한 이해를 해보았다.
그런데 slot이 여러개라면 어떻게 해야될까?
힌트
- <template v:slot="이름1">
- <slot name="이름1">
바로 전 포스팅 소스와 동일한 소스는 올리지 않았음
[UserInfo.vue]
<template>
<base-card>
<template v-slot:header>
<h3>{{ fullName }}</h3>
<base-badge :type="role" :caption="role.toUpperCase()"></base-badge>
</template>
<template v-slot:default>
<p>{{ infoText }}</p>
</template>
</base-card>
</template>
<script>
export default {
props: ['fullName', 'infoText', 'role'],
};
</script>
<style scoped>
section {
margin: 2rem auto;
max-width: 30rem;
border-radius: 12px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.26);
padding: 1rem;
}
section div {
display: flex;
justify-content: space-between;
align-items: center;
}
</style>
[BaseCard.vue]
<template>
<div>
<header>
<slot name="header"></slot>
</header>
<slot></slot>
</div>
</template>
<script>
export default {
}
</script>
<style scoped>
div{
margin: 2rem auto;
max-width: 30rem;
border-radius: 12px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.26);
padding: 1rem;
}
</style>
<template v-slot:default>는
slot에 name 설정 안해놓은 걸로 설정된다.