Vue3-(四)插槽的快速基本使用

本文最后更新于:April 1, 2022 am

Vue(读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式JavaScript框架。与其它框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,方便与第三方库或既有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

目录

插槽就是子组件中的提供给父组件使用的一个占位符,用 <slot></slot> 表示,父组件可以在这个占位符中填充任何模板代码,如 HTML、组件等,填充的内容会替换子组件的 <slot></slot>标签。

官方文档

单个插槽

组件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<template>
<div>
<slot></slot>
</div>
</template>

<script>
export default {
name: "tsCom"
}
</script>

<style scoped>

</style>

调用组件

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
27
28
<template>
<div id="day_1">
<tc>
<h2>填充到插槽的内容</h2>
</tc>
</div>
</template>

<script lang="ts">
import {ref, reactive,onMounted} from 'vue'
import tc from '/src/components/tsCom.vue'

export default {
components:{
tc
}
}


</script>

<style scoped>
#day_1{
margin-left: 5px;
margin-top: 5px;
}
</style>

多个插槽

需要给每一个插槽取名。

组件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<template>
<div>
<slot name="cc1"></slot>
<slot name="cc2"></slot>
</div>
</template>

<script>
export default {
name: "tsCom"
}
</script>

<style scoped>

</style>

调用组件

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
27
28
29
30
31
32
33
<template>
<div id="day_1">
<tc>
<template v-slot:cc2>
<h2>插槽2的内容</h2>
</template>
<template v-slot:cc1>
<h2>插槽1的内容</h2>
</template>
</tc>
</div>
</template>

<script lang="ts">
import {ref, reactive,onMounted} from 'vue'
import tc from '/src/components/tsCom.vue'

export default {
components:{
tc
}
}


</script>

<style scoped>
#day_1{
margin-left: 5px;
margin-top: 5px;
}
</style>