<template></template>、<slot></slot>、slot-scope、v-slot傻傻分不清!他们究竟是干啥的???

news2024/11/26 22:27:36

一句话描述4个关键词的作用:

template是备胎(模板):通常在html里面作为备用模板,包裹的内容显示,而自身标签不会出现在html中

slot是替身(替代组件包裹内容、插槽):通常出现在子组件中,用于替代父组件中><尖括号包裹的内容。

slot-scope是渣女的闺蜜(经常传话):闺蜜说的话到处去散播,用于获取子组件的对应变量值。

v-slot具有slot和slot-scope的功能

  1. 当写法是v-slot:插槽别名等同于slot="插槽别名"的写法
  2. 当写法是v-slot="变量名"等同于slot-scope="变量名"的写法

美中不足,v-slot 只能用在组件或 <template> 标签上,所以某种意义我更喜欢用slotslot-scope


接下来就用一个综合的例子讲解这4者分别的用处:

template

<template>

之间的内容直接显示出来,不会带出template节点标签
</template>

slot

【单个插槽的情况】

在子组件里面用<slot></slot>就可以显示父组件中><尖括号包裹的内容。

________________________________________________________________________

【多个插槽就需要用到具名的slot插槽】

父组件里面:

<template slot="插槽别名1">内容1</template>

<template slot="插槽别名2">内容2</template>

写法等同于

<template v-slot:插槽别名1>内容1</template>

<template v-slot:插槽别名2>内容2</template>

子组件里面:

<slot name="插槽别名1"></slot> //这个位置就会显示“内容1

<slot name="插槽别名2"></slot> //这个位置就会显示“内容2

提示:上面的name="插槽别名1"换成v-slot:插槽别名1也是可以的

slot-scope

子组件里面:

<slot 

:传参1="{字段1:'内容1',字段2:'内容2'}"

:传参2="{字段1:'内容2-1',字段2:'内容2-2'}"

></slot>

父组件里面:

<template slot-scope="{传参1,传参2}">

{{传参1.字段1}}//这个位置就会显示“内容1

{{传参1.字段2}}//这个位置就会显示“内容2

{{传参2.字段1}}//这个位置就会显示“内容2-1

{{传参2.字段2}}//这个位置就会显示“内容2-2

</template>

写法等同于

<template v-slot="{传参1,传参2}">

{{传参1.字段1}}//这个位置就会显示“内容1

{{传参1.字段2}}//这个位置就会显示“内容2

{{传参2.字段1}}//这个位置就会显示“内容2-1

{{传参2.字段2}}//这个位置就会显示“内容2-2

</template>

v-slot

上面已经讲过了v-slot等同于slotslot-scope的功能。

最巧妙之处,v-slot可以同时使用这两种功能,写法如下:

父组件里面:

<template v-slot:插槽别名1="{传参1,传参2}">

{{传参1.字段1}}//这个位置就会显示“内容1

{{传参1.字段2}}//这个位置就会显示“内容2

{{传参2.字段1}}//这个位置就会显示“内容2-1

{{传参2.字段2}}//这个位置就会显示“内容2-2

<template>

子组件里面:

<slot name="插槽别名1"

:传参1="{字段1:'内容1',字段2:'内容2'}"

:传参2="{字段1:'内容2-1',字段2:'内容2-2'}"

></slot>


其实,Angular也有类似的几个变态标签、属性,有空可以了解下: 

ng-template、ng-container、ng-content和ngTemplateOutlet、ngProjectAs傻傻分不清!他们究竟是干啥的???_你挚爱的强哥的博客-CSDN博客一句话描述三者的作用:ng-template是备胎:通常在html里面作为备用模板,当绑定了对应的#标记的时候才会显示ng-content是替身:通常出现在子组件中,用于替代显示子组件在父组件中><尖括号包裹的内容传递ng-container是舔狗:包裹的内容显示,而自身标签不会出现在html中..._ngprojectashttps://blog.csdn.net/qq_37860634/article/details/120539981

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

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

相关文章

简单加息解决通胀的时代不在了?引发经济变革与加密货币兴起!

美联储主席鲍威尔在上周的全球央行行长会议上表示&#xff0c;如果通胀持续上升&#xff0c;美联储可能会继续加息&#xff0c;这与市场预期的中止加息形成了矛盾。尽管如此&#xff0c;鲍威尔强调美联储将采取谨慎的行动&#xff0c;因此市场反应相对冷静&#xff0c;并没有出…

学习Linux基础知识与命令行操作

开始学习Linux系统前&#xff0c;首先要掌握计算机基础知识&#xff0c;了解硬件、操作系统、文件系统、网络和安全等概念。对这些基础知识的了解能够帮助理解Linux系统的概念和功能。 在Linux系统中&#xff0c;文件和目录是数据管理的基本单位。每个文件和目录都有一个称为&…

leetcode做题笔记107. 二叉树的层序遍历 II

给你二叉树的根节点 root &#xff0c;返回其节点值 自底向上的层序遍历 。 &#xff08;即按从叶子节点所在层到根节点所在的层&#xff0c;逐层从左向右遍历&#xff09; 思路一&#xff1a;递归调换顺序 int** levelOrderBottom(struct TreeNode* root, int* returnSize, i…

LNMT搭建部署

目录 一、概述 二、Nginx高级配置 三、搭建 一、概述 所谓的LNMT架构指的就是Linux操作系统上部署Nginx web服务器、MySQL数据库服务器、Tomcat中间件服务器。 二、Nginx高级配置 location 精确匹配 ^~ 不用正则的字符串匹配 …

Docker 常用服务 安装使用 教程

Docker安装常用服务 1、 安装mysql # 1.拉取mysql镜像到本地 docker pull mysql:tag (tag不加默认最新版本) # 2.运行mysql服务 docker run --name mysql -e MYSQL_ROOT_PASSWORDroot -d mysql:tag --没有暴露外部端口外部不能连接 docker run --name mysql -e MYSQL_ROOT_PAS…

多线程学习之线程池

线程状态 线程状态具体含义NEW一个尚未启动的线程的状态。也称之为初始、开始状态。线程刚被创建&#xff0c;但是并未启动。还没调用start方法。MyThread t new MyThread()只有线程对象&#xff0c;没有线程特征。RUNNABLE当我们调用线程对象的start方法&#xff0c;那么此时…

代码随想录算法训练营第十一天|LeetCode 239,347

目录 LeetCode 239. 滑动窗口最大值 LeetCode 347.前k个高频元素 LeetCode 239. 滑动窗口最大值 文章讲解&#xff1a;代码随想录 视频讲解&#xff1a;单调队列正式登场&#xff01;| LeetCode&#xff1a;239. 滑动窗口最大值_哔哩哔哩_bilibili 力扣题目&#xff1a;LeetC…

Spring5学习笔记—Spring事务处理

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Spring专栏 ✨特色专栏&#xff1a; M…

day 6 c++

#include <iostream>using namespace std; class Animal { public:Animal(){cout << "训练员的无参构造" << endl;}virtual void perform(){} }; class Tiger:public Animal {string tezheng;string biaoyan; public:Tiger(){cout << "…

【C++】C++ 引用详解 ⑨ ( 常量引用初始化 | C / C++ 常量分配内存的四种情况 )

文章目录 一、常量引用初始化1、使用 " 普通变量 " 初始化 " 常量引用 "2、使用 " 常量 / 字面量 " 初始化 " 常量引用 "3、C / C 常量分配内存的四种情况4、代码示例 - 常量引用初始化 一、常量引用初始化 1、使用 " 普通变量 &…

Apache SeaTunnel 2.3.3 版本发布,CDC 支持 Schema Evolution!

时隔两个月&#xff0c; Apache SeaTunnel 终于迎来大版本更新。此次发布的 2.3.3 版本在功能和性能上均有较大优化改进&#xff0c;其中大家期待已久的 CDC Schema evolution&#xff08;DDL 变更同步&#xff09;、主键 Split 拆分、JDBC Sink 自动建表功能、SeaTunnel Zeta …

C语言每日一题 ---- 打印从1到最大的n位数(Day 1)

本专栏为c语言练习专栏&#xff0c;适合刚刚学完c语言的初学者。本专栏每天会不定时更新&#xff0c;通过每天练习&#xff0c;进一步对c语言的重难点知识进行更深入的学习。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C语言天天练 &#x…

基于Java+SpringBoot+Vue前后端分离疾病防控综合系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

Linux系统编程系列之进程间通信(IPC)-信号

一、什么是信号 信号是进程间通信的一种方式&#xff0c;它是异步通信的。而异步的意思就是不同步&#xff0c;事件的发生和处理没有协同。 二、信号的特性 Linux/Unix系统下&#xff0c;信号总共分成两大类&#xff0c;一类是最常用的标准信号&#xff0c;另一类是后面的引入…

Python怎么解决性能问题?

Python的性能问题可以通过以下一些方法来解决或改善&#xff1a; 使用更高效的算法和数据结构&#xff1a; 选择适当的数据结构和算法可以显著提升代码的性能。了解不同算法的时间复杂度和空间复杂度&#xff0c;选择最适合问题的解决方案。 优化代码逻辑&#xff1a; 仔细审查…

yolov8使用C++推理的流程及注意事项

1.下载yolov8项目源码GitHub - ultralytics/ultralytics: NEW - YOLOv8 &#x1f680; in PyTorch > ONNX > OpenVINO > CoreML > TFLite 2.下载opencvReleases - OpenCV,建议版本>4.7.0,选择下载源码&#xff0c; windows版本由于使用的编译器与我们所使用的m…

5年测试,面试结束后被HR发朋友圈怼了..(心塞)

前一阵子向朋友诉苦&#xff0c;我在参加字节跳动面试的时候被面试官怼得哑口无言&#xff0c;场面让我一度十分尴尬。 印象最深的就是下面几个问题&#xff1a; 根据你以前的工作经验和学习到的测试技术&#xff0c;说说你对质量保证的理解&#xff1f; 非关系型数据库和关系型…

关于MySQL数据页的一些认识

1. 一个数据页有很多个槽&#xff0c;每个槽对应一个分组&#xff0c;槽指向分组的最大数据行记录&#xff0c;查找时通过二分法定位数据所在组 从数据页的角度看 B 树 | 小林coding 【Mysql】InnoDB 引擎中的页目录 - 知乎 2. 每个行记录是通过单链表来存储的 3. 数据页之…

教会你怎么使用SpringMVC 文件上传

&#x1f600;前言 教会你怎么使用SpringMVC 文件上传 &#x1f3e0;个人主页&#xff1a;尘觉主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是尘觉&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的动力&#x1f609;&#x1f609; 在csdn获…

java入坑之网络编程

一、 网络基础知识 1.1网卡 1.2IP地址 1.3端口 1.4保留IP 1.5网络协议 二、UDP 编程 2.1相关概念 计算机通讯&#xff1a;数据从一个IP的port出发&#xff08;发送方&#xff09;&#xff0c;运输到另外一个IP的port&#xff08;接收方&#xff09; UDP&#xff1a;无连接无…