38
Vue 3 學習之旅
元件系統

插槽基礎:內容分發機制

·6 分鐘閱讀·元件系統

摘要

插槽(Slots)是 Vue 中一個強大的內容分發機制,它允許父元件向子元件傳遞 HTML 內容。這種機制讓元件更加靈活,可以根據不同場景顯示不同的內容結構。

定義與說明

插槽的作用:

插槽讓我們能夠:

  • • 向子元件傳遞 HTML 內容
  • • 讓子元件決定內容的放置位置
  • • 實現更靈活的元件組合

基本用法:

子元件使用 <slot> 標籤定義插槽位置,父元件在使用子元件時,可以在開始和結束標籤之間放置任何內容,這些內容會被插入到子元件的插槽位置。

實作範例

Card.vue (子元件)
<template>
  <div class="card">
    <div class="card-header">
      <slot name="header">
        
        <h3>預設標題</h3>
      </slot>
    </div>

    <div class="card-body">
      <slot>
        
        <p>這裡是預設內容</p>
      </slot>
    </div>

    <div class="card-footer">
      <slot name="footer">
        
        <button>預設按鈕</button>
      </slot>
    </div>
  </div>
</template>
App.vue (父元件)
<template>
  <Card>
    
    <template v-slot:header>
      <h2>我的卡片</h2>
    </template>

    
    <p>這是一些自訂內容</p>

    
    <template #footer>
      <button>確認</button>
      <button>取消</button>
    </template>
  </Card>
</template>

結論

插槽機制讓元件的內容組合變得更加靈活。透過預設插槽和具名插槽,我們可以創建高度可複用的元件模板,同時保持對內容的完全控制。這是實現元件靈活性和可維護性的重要工具。

插槽 內容分發 元件組合