5 min read
•Question 10 of 37mediumWhat are Slots in Vue?
Content distribution with slots.
What You'll Learn
- Default slots
- Named slots
- Scoped slots
Default Slot
code.txtVUE
<!-- Card.vue -->
<template>
<div class="card">
<slot>Default content</slot>
</div>
</template>
<!-- Usage -->
<Card>
<p>Custom content here</p>
</Card>Named Slots
code.txtVUE
<!-- Layout.vue -->
<template>
<div class="layout">
<header>
<slot name="header"></slot>
</header>
<main>
<slot></slot>
</main>
<footer>
<slot name="footer"></slot>
</footer>
</div>
</template>
<!-- Usage -->
<Layout>
<template #header>
<h1>Title</h1>
</template>
<p>Main content</p>
<template #footer>
<p>Footer</p>
</template>
</Layout>Scoped Slots
code.txtVUE
<!-- List.vue -->
<template>
<ul>
<li v-for="item in items" :key="item.id">
<slot :item="item" :index="index"></slot>
</li>
</ul>
</template>
<!-- Usage -->
<List :items="users">
<template #default="{ item }">
<span>{{ item.name }}</span>
</template>
</List>