前言

在vue的开发过程中,我们会经常使用到vue的slot插槽组件,vue官方文档的描述:

Vue 实现了一套内容分发的 API,这套 API 的设计灵感源自 Web Components 规范草案,将 元素作为承载分发内容的出口

slot大概分为以下几种:

基础slot组件(匿名插槽)

匿名插槽主要使用场景并不涉及特别复杂的业务,更像是纯展示组件内容

<!--子组件-->

<template>
<span>
我是基础slot子组件, 父组件传过来的值:
<span style="color: red"><slot></slot></span>
</span>
</template>
<!--父组件-->

<li>
基础slot组件(匿名插槽):<Base>这是一段父组件传过来的文字</Base>
</li> import Base from "./Base.vue";

具名插槽

具名插槽,需要在父组件和子组件约定插槽名称

<!--子组件-->

<template>
<span>
<span style="color: red">
<slot name="name1"></slot>
<slot name="name2"></slot>
</span>
</span>
</template>
<!--父组件-->

<li>
<p>具名插槽:</p>
<Specific>
<template v-slot:name1>
<p>name1传过来的内容</p>
</template>
<template v-slot:name2>
<p>name2传过来的内容</p>
</template>
</Specific>
</li> import Specific from "./Specific.vue";

作用域插槽

作用域插槽,子组件提供数据,父组件接收子组件的值并展示和处理逻辑

<!--子组件-->

<template>
<span>
<span>
<slot name="scopeName" v-bind:scopeData="age"></slot>
</span>
</span>
</template> <script lang="ts">
import { Component, Vue, Prop } from "vue-property-decorator"; @Component
export default class Scope extends Vue {
private age: Number = 23;
}
</script>
<!--父组件-->

<li>
<p>作用域插槽</p>
<Scope>
<template v-slot:scopeName="childData">
作用域子组件slot返回的数据:
<span style="color: red">
{{ childData.scopeData }}
</span>
</template>
</Scope>
</li> import Specific from "./Specific.vue";

解构插槽

解构插槽,类似在js书写对象过程中的对象解构

{ data:{ username:1 } }
<!--子组件-->

<template>
<span>
<p>
<slot v-bind:user="user"></slot>
</p>
</span>
</template> <script lang="ts">
import { Component, Vue, Prop } from "vue-property-decorator"; @Component
export default class Deconstru extends Vue {
private user: Object = {
name: "zhangsan",
age: 23,
};
}
</script>
<!--父组件-->

<li>
<p>解构插槽</p>
<Deconstru>
<template v-slot="{ user: person }">
父组件模板:{{ person.name }},{{ person.age }}
</template>
</Deconstru>
</li> import Specific from "./Deconstru.vue";

以上例子均已上传至开源仓库,后续关于vue的学习笔记均会更在在该项目上,欢迎star


总结

在vue的插槽文档中,还有包含

<template #footer>
<p>Here's some contact info</p>
</template>

详细关于插槽的官方文档传送门

https://cn.vuejs.org/v2/guide/components-slots.html

文章个人博客地址:vue2版本中slot的基本使用详解

创作不易,转载请注明出处和作者。

vue2版本中slot的基本使用详解的更多相关文章

  1. vue2.0 中#$emit,$on的使用详解

    vue1.0中 vm.$dispatch 和 vm.$broadcast 被弃用,改用$emit,$on 1. vm.$on( event, callback ) 监听当前实例上的自定义事件.事件可以 ...

  2. Linux中/proc目录下文件详解

    转载于:http://blog.chinaunix.net/uid-10449864-id-2956854.html Linux中/proc目录下文件详解(一)/proc文件系统下的多种文件提供的系统 ...

  3. C#中的Linq to Xml详解

    这篇文章主要介绍了C#中的Linq to Xml详解,本文给出转换步骤以及大量实例,讲解了生成xml.查询并修改xml.监听xml事件.处理xml流等内容,需要的朋友可以参考下 一.生成Xml 为了能 ...

  4. C#中的预处理器指令详解

    这篇文章主要介绍了C#中的预处理器指令详解,本文讲解了#define 和 #undef.#if.#elif.#else和#endif.#warning和#error.#region和#endregio ...

  5. SVN中tag branch trunk用法详解

    SVN中tag branch trunk用法详解 2010-05-24 18:32 佚名 字号:T | T 本文向大家简单介绍一下SVN中tag branch trunk用法,SVN中tag bran ...

  6. 前端后台以及游戏中使用Google Protocol Buffer详解

    前端后台以及游戏中使用Google Protocol Buffer详解 0.什么是protoBuf protoBuf是一种灵活高效的独立于语言平台的结构化数据表示方法,与XML相比,protoBuf更 ...

  7. Linux中Nginx安装与配置详解

    转载自:http://www.linuxidc.com/Linux/2016-08/134110.htm Linux中Nginx安装与配置详解(CentOS-6.5:nginx-1.5.0). 1 N ...

  8. php中的PDO函数库详解

    PHP中的PDO函数库详解 PDO是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力:与ADODB和MDB2相比,P ...

  9. Linux中/proc目录下文件详解(转贴)

      转载:http://www.sudu.cn/info/index.php?op=article&id=302529   Linux中/proc目录下文件详解(一) 声明:可以自由转载本文, ...

随机推荐

  1. jdbc插入或查询数据库时间总是比实际时间少8小时原因

    mysql插入数据库的时间总是有问题,比实际时间要早8小时.检查是jdbc连接的url中配置的时区有问题,原先是 jdbc.url=jdbc:mysql://47.**.**.**:3306/yeey ...

  2. Java注解和注解处理器使用方法

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11492274.html 准备材料: 实体类: PrintDemo 注解类: PrintName ...

  3. 还在做廉价的劳动力?部署PXE实现Kickstart无人值守安装

    搭建PXE实现Kickstart无人值守安装 1.搭建PXE远程安装服务器 2.实现kicstart无人值守安装 1.PXE介绍及搭载: PXE是有Intel公司开发的网络引导技术,工作在Client ...

  4. Shell之awk

    Shell之awk 目录 Shell之awk 一.awk概述 1. awk的工作原理 2. 命令格式 3. awk常见的内建变量(可直接用) 二.操作实例 1. 按行输出文本 2. 按字段输出文本 3 ...

  5. 什么是rest?restful?

    百度百科解释: rest:REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的 ...

  6. 5、架构--Nginx、搭建超级玛丽游戏

    笔记 1.晨考 1.NFS共享文件步骤 - 服务端 [root@backup ~]# yum install nfs-utils rpcbind -y [root@backup ~]# mkdir / ...

  7. CentOS7利用yum缓存搭建本地源

    CentOS7利用yum缓存搭建本地源 环境说明 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 ( ...

  8. VS2019下配置OpenGL全过程

    一:下载VS2019 官网下载社区版 二:下载GLEW.GLFW 百度网盘地址: 链接:https://pan.baidu.com/s/1Uvz9svdnVRvDXNHjVgApig 提取码:rsgp ...

  9. DevOpts 前端开发和 Spug

    DevOpts 前端开发和 Spug 朋友新工作是进行 DevOpts 前端开发,涉及 Spug. DevOps 是什么 DevOps 是一种思想.用于促进开发和运维之间的沟通.协作或整合. Tip: ...

  10. 【Kotlin】初识Kotlin之面向对象

    [Kotlin]初识Kotlin之面向对象 1.类 在Kotlin中,类用关键字class来定义 如果一个类具有类体,那么需要使用{ }来写类体内容,如果不需要类体,那么只需要定义类名就可以了 // ...