#1 Data Analytics Program in India
₹2,499₹1,499Enroll Now
5 min read
Question 10 of 37medium

What 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>