一、插槽的分类
- 默认插槽
- 具名插槽(作用域插槽算是一种用法,不算是插槽的一种类型)
二、如何使用?
1、默认插槽:
经常复用的组件,并且需要再使用时对子组件内部一些内容需要定制,这时候可以在子组件内使用 <slot> 标签来占位,在父组件中的子组件标签内插入内容。
2、具名插槽:
当组件内部多处需要定制时,使用默认插槽已经不能满足我们的需求,因为多出使用插槽占位,Vue并不知道将我们插入的内容渲染在哪里,所以就需要使用具名插槽。
子组件定义插槽:
<template>
<div>
<slot name="header"></slot>
<p>这是主体内容</p>
<slot name="footer"></slot>
</div>
</template>
父组件使用:
在父组件中,你可以使用<template>
元素并为其添加v-slot
指令(或简写为#
)来指定要插入哪个具名插槽。
//举例:
<template>
<ChildComponent>
<template v-slot:header>
<h1>这是标题</h1>
</template>
<template #footer>
<p>这是页脚</p>
</template>
</ChildComponent>
</template>