slot插槽
# slot插槽
分为具名插槽,匿名插槽(只有1个), 动态插槽,作用域插槽
- 使用
<template>
<div class="wrapper">
<div class="header">
<slot name="header"></slot>
</div>
<div class="center">
<!-- 作用域传参:直接采用v-bind的形式 -->
<slot name="center" :names="names"></slot>
</div>
<div class="footer">
<slot name="footer"></slot>
</div>
</div>
</template>
<script lang="ts" setup>
import { reactive } from "vue"
interface nameParams {
name: string;
age: number
}
const names = reactive<nameParams[]>([
{name: "zhangsan", age: 12},
{name: "lisi", age: 13},
{name: "wangwu", age: 14},
])
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<script lang="ts" setup>
import SlotVue from "@/***/index.vue"
</script>
<template>
<SlotVue>
<template v-slot:header></template>
<!-- 作用域传参:接收子组件传过来的值 -->
<template #center="{names}">
{{names}}
</template>
<template v-slot:footer></template>
</SlotVue>
</template>
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
编辑 (opens new window)
上次更新: 2023/05/17, 21:35:56