Vue中插槽slot

news2025/8/8 10:56:56

slot插槽(别名:内容分发):

作用:

  • 混合父组件的内容与子组件自己的模板;
  • 父组件模板内容在父组件作用域内编译;子组件模板的内容在子组件作用域内编译;
  • 扩展组件能力,提高组件的复用性;

旧slot的写法:

需求:别人应用你的组件,比如导航栏,想自定义dom结构,因为不同的页面有些dom结构会有细微的差别;

插槽技术就可以满足你的需求:<slot></slot>

当你把<slot></slot>插在你的子组件template里,这时候你就可以在调用你子组件的时候,可以在子组件里插标签,显示你想显示的dom结构。

<child>
     <div>11111</div>
     <div>22222</div>
     <div>33333</div>
</child>
Vue.component("child",{
            template:`
            <div>
                child
                <slot></slot>
            </div>
            `
        })

结果:

当你在子组件 child template插入插槽<slot></slot>,含义是你可以在调用子组件里插入标签,这些标签会都插在child组件里的<slot></slot>位置;

当你只插了一个插槽slot,子组件<child></child>里的标签都会被插进来;

当你插入两个插槽,子组件里的标签也会被插入两次:

<div>
      child
      <slot></slot>
      <slot></slot>
</div>

结果:

那怎么实现标签插入指定位置呢:

插槽分为:单个插槽、具名插槽;

单个插槽:就像上面那样子的;

具名插槽:就是具有名字的插槽, <slot name="aa”><slot>;

  • 具名插槽有个属性:name,可以使得标签插入到某个插槽的具体位置:
<div>
    child
    <slot name="aa"></slot>
    <slot name="bb"></slot>
</div>
<child>
    <div slot="aa">11111</div>
    <div slot="bb">22222</div>
    <div>33333</div>
</child>
  • 标签想插在那个位置,就使用带有该名字的插槽slot;
  • 像第三个div标签,没有使用带有名字的slot,而且子组件中也没有不带名字插槽,所以它就插不到里面去;
  • 根据插槽名字对号入座;

结果如下图:

所以根据插槽的原理,我们看下面一个小例子:

需求:导航栏,一个调用了我们的子组件child,组件dom结构是这样的,左边显示一个按钮,中间显示文字,右边显示图标。想一想如果我们把dom给规定死的话,别人要小改的话怎么办,这就大大降低了组件的复用性,我们定义组件就是为了提高代码的复用性。

所以我们可以用插槽,把位置空出来让调用组件的人自己定义dom:

<child>
     <button slot="left">left</button>
     <i class="icofont icon-all" slot="right">图标</i>
</child>
<div>
     <slot name="left"></slot>
     <span>文字</span>
     <slot name="right"></slot>
</div>
  • 左边和右边的标签给好插槽,让用的人自己定义; 


新插槽slot的写法:

新版的插槽只在插入标签的位置上改了新写法;

旧的是直接插入标签,新版的是把slot改成了指令的写法v-slot=“”:

<child>
    <template v-slot="a">
          <div>1111</div>
    </template>
</child>

 v-slot指令名还可以省略:

<child>
    <template #a>
         <div>1111</div>
    </template>
</child>

含义都是在 名为“a”的插槽处插入; 

注意:

  • 新旧插槽都是适用于vue2版本的,并不是vue3的;
  • 当子组件插标签,是显示不出来的,都没这种用法,但是如果想显示子组件里的内容,需要用<slot></slot>;

插槽的意义:扩展组件能力,提高组件的复用性;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/34358.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VGG16 -19 — CV 中表现最好的 ConvNet 模型

从先进的计算机视觉出现的 Alexnet 开始&#xff0c;人们开始尝试不同的架构。牛津大学工程科学系的 Karen simonyan 和 Andrew Zisserman 在对 ImageNet Challenge 2014 的数据集进行了一些实验后提出了非常深的卷积网络&#xff1a;VERY DEEP CONVOLUTIONAL NETWORKS FOR LAR…

美食杰项目(二)首页

目录前言具体样式代码思路加载样式相应组件相应代码总结&#xff1a;前言 本节给大家讲的是美食杰项目的首页的主要功能和具体样式 具体样式 代码思路 1.点击首页跳转到首页页面 2.在父组件将轮播图所需的图片请求出来&#xff0c;再传给轮播组件 3.在父组件将商品列表的数据…

找不到工作,软件测试真的不香了?

最近总是有人说测试先不要干&#xff0c;测试不好找工作。测试没有以前那么香了&#xff1f; 可是&#xff0c;这是真的么&#xff1f;什么样的人会说这样的话&#xff1f; 肯定不是现在还在岗的人说的&#xff0c;也不是已经拿到企业聘用offer的人说的。 因为他们都是优秀的…

交换机的工作原理以及搭建局域网划分VLAN

作者简介&#xff1a;一名99年软件运维应届毕业生&#xff0c;正在自学云计算课程。宣言&#xff1a;人生就是B&#xff08;birth&#xff09;和D&#xff08;death&#xff09;之间的C&#xff08;choise&#xff09;&#xff0c;做好每一个选择。创作不易&#xff0c;动动小手…

OneAuth 2022.11.23版本更新内容

2022.11.23版本更新内容&#xff1a; 新增IdP飞书 云目录增加对Group的支持GWA浏览器插件适配性优化自定义授权服务器优化&#xff0c;适应RBAC、ABAC等多种场景授权IdP 北森优化&#xff0c;适配自定义的属性租户的部分试用功能需要联系后台开通其他一些Bug的修复 标题新增 …

GIT

X.1 git上线后同步分支代码 上线后合并远端开发分支到远端master&#xff1a; 本地分支提交到远端分支&#xff0c;git上远端分账合并请求到远端master 上线后合并远端master到远端开发分支&#xff1a; 同步远端master到本地master&#xff0c;将本地master合并到本地开发分…

DM8级联异步备库搭建及故障模拟将异步切换为实时同步

目录 一、 搭建前准备 二、 主库配置 2.1 dmini配置 2.2 dmmal.ini配置 2.3 dmarch.ini配置 2.4 dmwatcher.ini配置 2.5 dmtimer.ini配置 三、 异步备库配置 3.1 dm.ini配置 3.2 dmmal.ini配置 3.3 dmarch.ini配置 3.4 dmwatcher.ini配置 3.5 dmtimer.ini配置 四、…

【计算机网络】HTTP/HTTPS协议基础知识汇总

目录 1.URL&#xff1a; 2.HTTP协议&#xff1a; 2.1抓包工具&#xff08;这里用fiddler&#xff09;&#xff1a; 2.2请求和响应的格式&#xff1a; 2.3方法的介绍&#xff1a; 2.4请求报头&#xff08;header&#xff09;&#xff1a; 2.5状态码&#xff1a; 2.6响应…

格式化DataFrame中的时间数据DataFrame.to_datetime()方法

小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 格式化DataFrame中的时间数据 DataFrame.to_datetime()方法 选择题 关于以下python代码说法错误的一项是? import pandas as pd data {"Date": [2022/12/01,2022/12/02]} df pd…

SQL Server如何获取GUID号

select newid() guid;--获取GUID select replace(newid(),-,) guid;--获取GUID 去掉- sqlserver newid()函数 NEWID (Transact-SQL) - SQL Server | Microsoft LearnNEWID (Transact-SQL)https://learn.microsoft.com/en-us/sql/t-sql/functions/newid-transact-sql?redirect…

在大厂工作是这样的

应上面的一个小伙伴要求&#xff0c;让一个朋友整理了他做华为的工作经历&#xff0c;写的有些零散&#xff0c;希望对有大公司情怀的人所有帮助。35岁那年&#xff0c;拿到华为的社招offer。看着邮箱里面的录取通知&#xff0c;心里有高兴也有失落&#xff0c;难受的是看着身边…

腾讯云COS+PicGo+Typora十分钟搭建自己的图床

&#x1f468;‍&#x1f4bb;个人主页&#xff1a; 才疏学浅的木子 &#x1f647;‍♂️ 本人也在学习阶段如若发现问题&#xff0c;请告知非常感谢 &#x1f647;‍♂️ &#x1f4d2; 本文来自专栏&#xff1a; 常见软件安装与运用 ❤️ 支持我&#xff1a;&#x1f44d;点赞…

[附源码]java毕业设计逸尘房屋销售管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

SSRF 漏洞笔记

什么是 SSRF 漏洞 SSRF&#xff08;Server-Side Request Forgery&#xff0c;服务端请求伪造&#xff09;是指攻击者向服务端发送包含恶意 URL 链接的请求&#xff0c;借由服务端去访问此 URL &#xff0c;以获取受保护网络内的资源的一种安全漏洞。SSRF 常被用于探测攻击者无…

引擎入门 | Unity UI简介–第1部分(9)

本期我们继续为大家进行Unity UI简介&#xff08;第一部分&#xff09;的后续教程 本篇内容 21.增加设置按钮 22.添加场景构建 文章末尾可免费获取教程源代码 本篇Unity UI简介&#xff08;第一部分&#xff09;篇幅较长&#xff0c;分为十篇&#xff0c;本篇为第九篇。 …

RK3568平台开发系列讲解(视频篇)视频编码的工作原理

🚀返回专栏总目录 文章目录 一、编码标准介绍二、编码器的工作编码原理介绍2.1、帧类型介绍2.2、消除时间上的冗余信息2.3、消除空间上的冗余信息沉淀、分享、成长,让自己和他人都能有所收获!😄 📢采集下来的内容最终是需要保存到一个视频文件中的,所以就需要用到视频…

折叠屏“世界杯”开哨,荣耀Magic Vs踢出关键一球

已经开幕的卡塔尔世界杯&#xff0c;点燃了全世界球员们的激情和球迷们的热情。有人关注比赛输赢结果&#xff0c;也有人在乎的是运动员高超的技法、球队成员的紧密配合、精彩的战略战术。折叠屏市场从2019元年至今&#xff0c;也来到了关键赛点。一方面&#xff0c;除苹果外重…

【零基础入门SpringMVC】第二期——匹配请求与获取请求参数

一、RequestMapping注解 该注解有什么作用呢&#xff1f; 将请求和处理请求的控制器方法关联起来 &#xff0c;建立映射关系当SpringMVC接收到指定的请求后&#xff0c;就会通过映射关系中对应的控制器方法处理请求 我们可以查看一下该注解的源码&#xff1a; // // Source …

MyBatis-Plus之DQL编程控制

增删改查四个操作中&#xff0c;查询是非常重要的也是非常复杂的操作&#xff0c;本次介绍的有&#xff1a; 条件查询方式查询投影查询条件设定字段映射与表名映射 1. 条件查询 1.1 条件查询的类 MyBatisPlus将书写复杂的SQL查询条件进行了封装&#xff0c;使用编程的形式完…

Docker的镜像管理

Docker的镜像管理Docker的镜像管理一、Docker的镜像管理命令1.1 搜索镜像1.2 获取镜像1.3 镜像加速下载1.4 查看镜像信息1.5 获取镜像详细信息1.6 为本地的镜像添加新的标签1.7 删除镜像1.8 批量删除镜像1.8 存出镜像&#xff1a;将镜像保存成为本地文件1.9 载入镜像&#xff1…