目录
slot插槽
默认插槽
具名插槽
作用域插槽
html
<!-- 子组件 template -->
<div>
<header>
<slot name="header"></slot> <!-- 具名插槽 -->
</header>
<main>
<slot></slot> <!-- 默认插槽 -->
</main>
<footer>
<slot name="footer"></slot> <!-- 具名插槽 -->
</footer>
</div>
<!-- 父组件使用 -->
<my-component>
<template v-slot:header>
这里是头部内容
</template>
<template v-slot:default> <!-- 或者省略 :default -->
这里是主体内容
</template>
<template #footer> <!-- # 是 v-slot: 的简写 -->
这里是底部内容
</template>
</my-component>
<!-- 子组件 template -->
<div>
<ul>
<li v-for="item in items" :key="item.id">
<slot :item="item"></slot> <!-- 作用域插槽 -->
</li>
</ul>
</div>
<!-- 父组件使用 -->
<my-component :items="itemsList">
<template v-slot:default="{ item }"> <!-- 解构获取 item -->
{{ item.name }} - ${{ item.price }}
</template>
</my-component>