1.作用:让父组件可以向子组件指定位置插入html结构,也是一种组件间通信的方式,适用于 父组件 ===> 子组件 。

2.分类:默认插槽、具名插槽、作用域插槽

3.使用方式:

  ①默认插槽      当父组件没有插入时,插槽显示默认内容(一般slot标签内部不写内容)

父组件中:
<Category>
<div>父组件使用插槽后的内容</div>
</Category>
子组件中:
<template>
<div>
<!-- 定义插槽 -->
<slot>插槽默认内容...</slot>
</div>
</template>

  ②具名插槽   使用场景很多

 1 父组件中:
2 <HelloWorld>
3 <template slot="center"> <!--1. 这种写法废弃 -->
4 <div>html结构1</div>
5 </template>
6
7 <template v-slot:footer> <!--2. 新写法 #footer -->
8 <div>html结构2</div>
9 </template>
10 </HelloWorld>
11 子组件中:
12 <template>
13 <div>
14 <!-- 定义插槽 -->
15 <slot name="center">插槽默认内容...</slot>
16 <slot name="footer">插槽默认内容...</slot>
17 </div>
18 </template>

  ③作用域插槽

  • 数据在组件的自身,但根据数据生成的结构需要组件的使用者来决定,比如两个地方都需要使用这个子组件,但是在子组件需要展示不同是数据结构,可以通过这个方法解决。
 1 //父组件根据子组件的数据生成对应的结构插入到子组件中去
2 <template>
3 <div>
4 <HelloWorld :tableData="tableData">
5 <template v-slot:default="scope"> 新写法 #default="scope"
6 {{scope.data.name}} //data是子组件slot传过来的值
7 </template>
8 </HelloWorld>
9 </div>
10 </template>
11
12 <script>
13 import { reactive, toRefs } from "vue";
14 import HelloWorld from "../components/HelloWorld.vue";
15 export default {
16 components: { HelloWorld },
17 setup() {
18 const state = reactive({
19 tableData: [
20 {
21 date: "2016-05-02",
22 name: "王小虎",
23 province: "上海",
24 city: "普陀区",
25 address: "上海市普陀区金沙江路 1518 弄",
26 slot: 'data',
27 },
28 {
29 date: "2016-05-04",
30 name: "王小虎",
31 province: "上海",
32 city: "普陀区",
33 address: "上海市普陀区金沙江路 1517 弄",
34 zip: 200333,
35 slot: 'name',
36 },
37 {
38 date: "2016-05-01",
39 name: "王小虎",
40 province: "上海",
41 city: "普陀区",
42 address: "上海市普陀区金沙江路 1519 弄",
43 zip: 200333,
44 slot: 'province',
45
46 },
47 {
48 date: "2016-05-03",
49 name: "王小虎",
50 province: "上海",
51 city: "普陀区",
52 address: "上海市普陀区金沙江路 1516 弄",
53 zip: 200333,
54 slot: 'address',
55 },
56 ],
57 });
58
59 return {
60 ...toRefs(state),
61 };
62 },
63 };
64 </script>
65
66 //子组件将数据传递给父组件
67 <template>
68 <div>
69 <li v-for="(item, index) in tableData" :key="index">
70 <slot :data="item" :index="index"></slot>
71 </li>
72 </div>
73 </template>
74
75 <script>
76 import { reactive, toRefs } from "vue";
77
78 export default {
79 props: ["tableData"],
80 setup() {
81 const state = reactive({
82 count: "子组件",
83 });
84
85 return {
86 ...toRefs(state),
87 };
88 },
89 };
90 </script>
91
92 <style>
93
94 </style>

Vue中插槽的使用的更多相关文章

  1. Vue中插槽指令

    08.29自我总结 Vue中插槽指令 意义 就是在组件里留着差值方便后续组件内容新增 而且由于插件是写在父级中数据可以直接父级中传输而不需要传子再传父有些情况会减少写代码量 示例 <div id ...

  2. vue中插槽作用域的使用

    一.插槽作用域 1.简单来说就是带参数的插槽: 2.使用方式: 在组件标签内部加一个template标签 在template标签上加一个属性scope 值随意书写 在组件内部用slot进行接受,如果给 ...

  3. Vue中插槽slot的使用

    插槽,也就是slot,是组件的一块HTML模板,这块模板显示不显示.以及怎样显示由父组件来决定. 实际上,一个slot最核心的两个问题在这里就点出来了,是显示不显示和怎样显示. 由于插槽是一块模板,所 ...

  4. vue中插槽(slot)的使用

    刚学vue的时候,曾经学习过slot插槽的使用,但是后面接触的不多,因为之前我还没使用element-ui... 但是使用了element-ui之后,里面的许多组件,有时候会使用插槽,为了巩固一下插槽 ...

  5. vue中插槽的使用场景

    效果图:

  6. vue中具名插槽的使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. vue 中的slot属性(插槽)的使用

    总结如下: VUE中关于插槽的文档说明很短,语言又写的很凝练,再加上其和方法,数据,计算机等常用选项在使用频率,使用先后上的差别,这就有可能造成初次接触插槽的开发者容易产生“算了吧,回头再学,反正已经 ...

  8. vue中的slot(插槽)

    vue中的插槽----slot 什么是插槽? 插槽(Slot)是Vue提出来的一个概念,正如名字一样,插槽用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性. ...

  9. Vue中的作用域插槽

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. vue中的插槽(slot)

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

随机推荐

  1. QT网络编程【二】【Socket】

    1.QT中添加socket 库的相关操作 2.正常c++11 VS2019使用socket库的操作 3.winsock2 与 sys/socket.h的区别? 4.WinSock2 的基本操作? 详细 ...

  2. windows环境下本地项目(或gitlab上拉取项目)在Jenkins上自动打包部署 超超超详细!!!!!

    一.环境准备 1.下载jdk,官网:http://www.oracle.com/ 2.下载Jenkins,官网:https://www.jenkins.io/ 3.下载Tomcat,官网:http:/ ...

  3. 各种系统名词解释:MIS 、ERP、CRM、OA

    MIS :信息系统.针对企业使用的软件,都可以叫做MIS系统. (管理信息系统--Management Information System)系统 ,是一个由人.计算机及其他外围设备等组成的能进行信息 ...

  4. Vue学习之基础大全

    1 导入vue: 2 <script src="vue.min.js"></script> 3 创建vm实例 4 var vm=new Vue({ 5 el ...

  5. 操作kubernets(k8s)的增删改查

    资源的CRUD: 创建: Service service = client.services().inNamespace(namespace).create(service); 更新: Namespa ...

  6. SAP BADI总结

    SAP里标准拼法是BAdI,区分大小写.太麻烦,文章里全用大写. BADI技术的底层是接口,类等面向对象开发的内容. Classic BADI是一个BADI包了一个接口.实现它的话,需要一个接口的实现 ...

  7. 深入理解 Python 虚拟机:浮点数(float)的实现原理及源码剖析

    深入理解 Python 虚拟机:浮点数(float)的实现原理及源码剖析 在本篇文章当中主要分析在 cpython 虚拟机当中 float 类型的实现原理以及与他相关的一些源代码. Float 数据结 ...

  8. 痞子衡嵌入式:盘点国内RISC-V内核MCU厂商(2018年发布产品)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是国内RISC-V内核MCU厂商(2018). 虽然RISC-V风潮已经吹了好几年,但2019年才是其真正进入主流市场的元年,最近国内大量 ...

  9. java.lang.StackOverflowError错误的解决方法

    对于java.lang.StackOverflowError认识 如下图所示,报出来这种错误的话,很大概率是有以下几种原因: 现在来看一看我的报错界面: 不难看出,这是无限循环的那种情况,所以,我就去 ...

  10. 【读书笔记】Young Tableau_Calculus of tableaux_bumping and sliding

    目录 bumping Schensted bumping algorithm 举例 sliding/digging a hole 一些定义 Schiitzenberger sliding algori ...