Vue 具名插槽是 Vue.js 中重要的一個功能,它解決了在一個組件中可以使用多個插槽的問題。通過具名插槽,我們可以更好地組織我們的模板,使其更清晰、易讀。接下來,我們將介紹一個具名插槽的例子。
Vue.component('modal', {
template: `
<div class="modal">
<div class="header">
<slot name="header"></slot>
</div>
<div class="body">
<slot></slot>
</div>
<div class="footer">
<slot name="footer"></slot>
</div>
</div>
`
});
以上代碼定義了一個名為 Modal 的組件,它包含一個帶有三個插槽的模板。其中,header 和 footer 是具名插槽,body 是默認插槽。
下面是如何使用該組件的示例:
<modal>
<template v-slot:header>這是標題</template>
這是內容
<template v-slot:footer>這是頁腳</template>
</modal>
以上代碼中,我們在 Modal 組件中使用了三個插槽。其中,<template v-slot:header> 定義了一個名為 header 的具名插槽,<template v-slot:footer> 定義了一個名為 footer 的具名插槽,而內容部分則放在了默認插槽中。通過這種方式,我們可以很清晰地看到組件中的各個部分。
此外,我們還可以使用縮寫語法來定義具名插槽,如下所示:
<modal>
<h3 slot="header">這是標題</h3>
這是內容
<button slot="footer">確定</button>
</modal>
以上代碼與前面的示例等價,只不過使用了語法糖。
總之,Vue 具名插槽是一個強大的功能,它可以幫助我們更好地組織模板,使其更加清晰、易讀。如果你正在開發一個組件化的項目,那么具名插槽是一個不可或缺的工具。