文章目录

  • 三分钟带你弄懂slot插槽——vue进阶
    • 一、概述
      • 程序员之死
      • 什么是 slot插槽?
      • 2.6.0 版本中的 slot
    • 二、具名插槽
      • 例子
        • 效果图
        • 代码
    • 三、小惊喜

三分钟带你弄懂slot插槽——vue进阶

一、概述

当然,你可以先看完例子之后再回来看概述或者官方文档

程序员之死

在项目的开发中,代码冗余一直是程序员头疼的事情

小白程序员必会遇到的情况之一,就是写一个大项目,然后无限的 ctrl+c 和 ctrl-v,到差不多项目DDL了,甲方告诉你要改这个地方,要改那个地方,然后你就又一波 ctrl+c 和 ctrl-v

当你搞完这30几次的 ctrl+c 和 ctrl-v后,啊……这……什么鬼,报错了

当你改完bug之后,甲方:“改回去吧,我不要了”

这时,怎一个艹字头了的,当场升天的心都有了

这个时候,组件就显得尤为重要

使用好 “slot插槽” 能够让你再使用组件的时候更游刃有余

什么是 slot插槽?

我是这么理解的:

slot定义在子组件中,slot中的内容权重为1
在父组件中,权重为10

也就是说:如果父组件中没有内容去“替换”子组件的slot,那么默认渲染出子组件中的内容

<!--子组件 mytemplate 中-->
<template><slot>header</slot>
</template><!--父组件1中-->
<mytemplate></mytemplate><!--父组件2中-->
<mytemplate>change header
</mytemplate>

这样,父组件1中显示为 header,父组件2中显示为 change header

2.6.0 版本中的 slot

在 2.6.0 中,我们为具名插槽和作用域插槽引入了一个新的统一的语法 (即 v-slot 指令)。
它取代了 slot 和 slot-scope 这两个目前已被废弃但未被移除且仍在文档中的 attribute。

二、具名插槽

在2.6.0中,已经使用 name 和 v-slot 进行搭配了,不填name默认为 name = “default”

例子

下面我用一个例子来帮助大家理解 slot插槽

效果图

帮大家捋一下思路:

子组件由title、img、content三部分组成,我们要做的效果就是左边放默认的子组件效果,右边的替换掉插槽,用上我们在父组件中定义内容

子组件定义三个具名插槽(要是不定义name的话,全部默认为defult就会出事了)然后再父组件中,用 v-slot:[名字] 来替换默认插槽

代码

Slot-Component.vue

<!--这是作图的默认效果,在子组件中-->
<template><div class="container"><strong><slot name="slot-title">title</slot></strong><slot name="slot-img"><img src="http://localhost:9999/img/1.png" alt /></slot><p style="color:#666"><slot name="slot-content">content</slot></p></div>
</template><style scoped>
* {padding: 0;background: 0;margin: 0;
}
.container {width: 200px;height: 200px;overflow: hidden;background: #f0f0f0;border: 0.5rem solid #999;margin: 1rem;
}
.container strong {display: block;height: 2rem;line-height: 2rem;
}
.container p {height: 2rem;line-height: 2rem;
}
.container img {height: calc(100% - 4rem);
}
</style>

Father.vue

<template><div class="container"><slotComponent class="margin-auto"></slotComponent><slotComponent class="margin-auto"><template v-slot:slot-title>mytitle</template><template v-slot:slot-img><img src="http://localhost:9999/img/2.png" alt /></template><template v-slot:slot-content>mycontent</template></slotComponent></div>
</template><script>
import slotComponent from "../components/Slot-Component";
export default {components: { slotComponent }
};
</script><style scoped>
.margin-auto {display: inline-block;
}
</style>

三、小惊喜

slot插槽中,< slot >标签是定义不了样式了,行内样式也不行!为什么呢?请按F12查看一下是否还有< slot >标签的存在。

三分钟带你弄懂slot插槽——vue进阶相关推荐

  1. 三分钟带你看懂prototype原型——ES6进阶

    三分钟带你看懂prototype原型--ES6进阶 1. prototype 定义 2. new 构造函数 3. 存储 4. prototype 作用 1. prototype 定义 在JS中的类的实 ...

  2. 三分钟带你弄懂GFS(Google File System)

    提示:预计阅读时间三分钟,该文章仅对GFS做了一的简略介绍,细节方面建议阅读原文. 文章目录 前言 一.GFS是什么? 1.1 简单介绍 1.2 我们为什么需要阅读GFS的论文? 1.3 GFS论文对 ...

  3. 三分钟带你看懂HDMI接口的PCB设计

    三分钟带你看懂HDMI接口的PCB设计 本文主要讲解的是HDMI的设计,包括作用和运用的总结,希望大家看了以后能轻松的应对各种HDMI方案的PCB设计. 一.什么是HDMI? 高清晰度多媒体接口(英文 ...

  4. 三分钟带你读懂 BERT

    本文为 AI 研习社编译的技术博客,原标题 : BERT Technology introduced in 3-minutes 作者 | Suleiman Khan, Ph.D. 翻译 | 胡瑛皓.s ...

  5. 开关柜太复杂看着头疼?三分钟带你看懂开关柜!

    安科瑞 华楠 开关柜是指按一定的方案将一次设备.二次设备组装而成的成套配电装置,主要用来对线路.设备实施控制.保护.开关柜按进出线电压等级可分高压开关柜(固定式和手车式)和低压开关柜(固定式和抽屉式) ...

  6. 5 分钟带你弄懂 k-means 聚类

    聚类与分类的区别 分类:类别是已知的,通过对已知分类的数据进行训练和学习,找到这些不同类的特征,再对未分类的数据进行分类.属于监督学习. 聚类:事先不知道数据会分为几类,通过聚类分析将数据聚合成几个群 ...

  7. 三分钟带您搞懂代理模式

    全文共1439字,预计阅读时间:10分钟 定义: 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问. 代理模式是一种比较贴近于生活的 设计模式,现实生活中也有很多代理模式的例子: ...

  8. 明显调用的表达式前的括号必须具有指针函数类型_每天三分钟带你搞懂C++基础Day5 处理类型 typedef、auto、decltype...

    类型别名(type alias)一个名字,是某种类型的同义词.使用类型名有很多好处,能让复杂的类型名字变得简单明了,易于理解和使用. 有两种方法可用于定义类型别名.传统的方法是使用关键字typedef ...

  9. 三分钟带你搞懂什么是向上转型和向下转型

    什么是向上转型? 通过在网上查了资料,和普遍的介绍,一句话总结就是"父类引用指向子类对象",例: Human h=new Human(); h.eat();//人类 Animal ...

最新文章

  1. 浙江发布数字化改革标准化体系建设方案,将于2025年底建成
  2. beamer插入图片_beamer中暗背景插入图片
  3. Windows 命名管道 + 异步I/O模型
  4. deepl真的有取代一般翻译的能力,这吞吐量和稳定性...亲测有效
  5. python2和python3如何共存_Windows下python2和python3的共存设置
  6. 从0搭建在线聊天室,只需4步!
  7. 记录0.7.1版本的seata批量保存会报错的情况
  8. laravel 模板继承_Laravel框架模板之公共模板、继承、包含实现方法分析
  9. 第八十五期:一文彻底搞懂cookie和session
  10. golang flag包(命令行参数解析)
  11. 【CSS布局】已知布局元素的高度,写出三栏布局,要求左栏、右栏宽度各为300px,中间自适应。
  12. php 改变图片的宽高,php缩放图片(根据宽高的等比例缩放)示例
  13. 【CuteJavaScript】Angular6入门项目(1.构建项目和创建路由)
  14. android客户端中间人攻击,Android 中间人攻击
  15. 【python】编程语言入门经典100例--11
  16. 关于动作捕捉动画一些记录
  17. 杜洋面包板入门电子制作学习笔记 第1集 总记
  18. 服务器2003系统安装时蓝屏,安装2003server操作系统蓝屏是怎么回事?
  19. 计算机的游戏功能,游戏同步器功能介绍、作用讲解及使用方法
  20. 架构真经 | 那些年,我们踩过的缓存坑

热门文章

  1. 赠书 | 如何建设数据中台?看这份企业数据能力测评就够了!
  2. “我们必须禁止互联网定向广告!”
  3. 面对万人世界军人运动会票务,阿里文娱 Dpath 如何保障稳定性?
  4. 微信小范围上线“分付”功能;罗永浩宣布独家签约抖音;Github pages 可能遭遇中间人攻击 | 极客头条...
  5. 最想学 Go、Python,全栈开发者紧缺!分析了 11 万条程序员数据后有了这些发现...
  6. 微信支付宝关闭三星Galaxy指纹支付;乐视网回应贾跃亭破产;Chrome 78发布|极客头条...
  7. 刚刚,百度宣布王海峰升任 CTO
  8. 代码只要写得多,就能成为顶尖的架构师?
  9. CSDN蒋涛:从人才培养和地缘优势入手,助力软件名城发展
  10. 一行代码蒸发了 ¥6,447,277,680 人民币!