首页 > 其他分享 >插槽(slot)用法汇总

插槽(slot)用法汇总

时间:2023-11-17 16:00:10浏览次数:29  
标签:slot vue name 插槽 汇总 Child 组件 import

什么是插槽

简单来说就是子组件中的提供给父组件使用的一个坑位,用 表示,父组件可以在这个坑位中填充任何模板代码然后子组件中就会被替换成这些内容。比如一个最简单插槽例子

<!-- 父组件 -->
<template>
  <div>
    <Child>Hello Juejin</Child>
  </div>
</template>
<script setup lang="ts">
import Child from "./Child.vue";
</script>

<!-- 子组件Child -->
<template>
  <div>
    <p>1</p>
    <slot />
    <p>2</p>
  </div>
</template>

子组件中的 便是父组件放在子组件标签之间的内容。当然这之间可以传入任何代码片段,都会被放到这个位置。

1
Hello Juejin
2

同样的也可以在标签之间放入变量,比如

<!-- 父组件 -->
<template>
  <div>
    <Child>{{ msg }}</Child>
  </div>
</template>
<script setup lang="ts">
import { ref } from "vue";
import Child from "./Child.vue";
const msg = ref("Hello Juejin");
</script>

先解释一下后面频繁出现的两个词 插槽和插槽内容,防止后面阅读搞混了:
image

同样的 插槽表示的就是这个 msg 变量。所以子组件 插槽是可以访问到父组件的数据作用域,而插槽内容是无法访问子组件的数据(即父组件中两个之间是不能使用子组件中的数据的),这就是所谓的渲染作用域。后面会介绍插槽向插槽内容传参的方式

默认内容

在父组件没有提供任何插槽内容的时候,是可以为子组件的插槽指定默认内容的,比如

<!-- 子组件 -->
<template>
  <div>
    <slot>是默认内容</slot>
  </div>
</template>

<!-- 父组件1 -->
<template>
  <div>
    <Child></Child>
  </div>
</template>
<script setup>
import Child from "./Child.vue";
</script>

<!-- 父组件2 -->
<template>
  <div>
    <Child>Hello Juejin</Child>
  </div>
</template>
<script setup>
import Child from "./Child.vue";
</script>

此时父组件 1 展示默认内容

是默认内容

此时父组件 2 展示默认内容

Hello Juejin

具名插槽

很多时候一个 插槽满足不了需求,需要多个插槽。于是就有了具名插槽,就是具有名字的 插槽。简单来说这个具名插槽的目的就是让一个萝卜一个坑,让它们呆在该呆的位置去。比如带  name  的插槽 被称为具名插槽。没有提供  name  的    会隐式地命名为“default”。在父组件中可以使用 v-slot:xxx(可简写为#xxx)  指令的  

标签:slot,vue,name,插槽,汇总,Child,组件,import
From: https://www.cnblogs.com/wp-leonard/p/17838964.html

相关文章

  • Airtest:各平台的剪切板功能汇总
    此文章来源于项目官方公众号:“AirtestProject”版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途1.前言一直以来,大家都还挺关注Airtest是否有剪切板功能的。从Airtest1.3.1版本起,我们新增了Android、iOS设备的剪切板功能,自此,3大平台的剪切板功能就齐全啦。......
  • 前景一片蓝海,Android音视频开发必备基础知识汇总
    前言转瞬间,2023只剩一个半月,再过去的一年里,音视频技术在经历一番风浪的侵袭过后,变得逐渐相对平静下来。“内卷”之外,大家似乎更多了一份“理性”指导我们去做一些正确的事,追求技术在商业中的更高价值。具体体现在我们要思考如何才能将自身能力更多、更快、更好的转化为产品。无论......
  • JavaScript判断图片是否已经加载完毕的方法汇总_javascript技巧
    在网上有很多关于判断图片是否已经加载完毕的文章,但是有的浏览器并不适合,下面小编给大家分享一些有关JavaScript判断图片是否已经加载完毕方法汇总,具体内容如下所示:一.onload事件通过监听图片的onload事件,可以判断图片是否已经加载完成,兼容所有的浏览器(w3c推荐方法),代码示例如下......
  • 初中数学核心知识点整理汇总大全
    七年级数学(上)知识点人教版七年级数学上册主要包含了有理数、整式的加减、一元一次方程、图形的认识初步四个章节的内容.第一章有理数1.有理数:(1)凡能写成形式的数,都是有理数.正整数、0、负整数统称整数;正分数、负分数统称分数;整数和分数统称有理数.注意:0即不是正数,......
  • Android并发编程高级面试题汇总(含详细解析 五)
    Android并发编程高级面试题汇总最全最细面试题讲解持续更新中......
  • 前端知识 汇总
    CORS CORS是一个W3C标准,全称是"跨域资源共享"(Cross-originresourcesharing)跨域资源共享CORS详解。看名字就知道这是处理跨域问题的标准做法。CORS背后的思想,就是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功,还是应该失败。Vue双向绑定原理......
  • Django实战项目-学习任务系统-文章汇总
    学习任务系统1.0版本已经基本完成了。现在按顺序整理下文章和链接,按照开发时间顺序列举,方便想要完整学习的人。理论上说,按照文章代码可以搭建该系统的70%主体功能,剩下一些小的功能自己参考现有代码学习即可完成。1,Django实战项目-学习任务系统-需求说明https://mp.weixin.qq.co......
  • C#6-c#7 知识点使用汇总
    七、C#6.0语法及使用6.0.01usingstatic静态导入指令命名了一种类型,无需指定类型名称即可访问其静态成员和嵌套类型.demo:usingstaticSystem.Console;WriteLine("dennychen");//System.Console.WriteLine("dennychen");6.0.02trycatchwhen异常筛选器:仅在满足某些参......
  • Android并发编程高级面试题汇总(含详细解析 四)
    Android并发编程高级面试题汇总最全最细面试题讲解持续更新中......
  • UE4.27 bug汇总
    编译时errorC4668:没有将“_WIN32_WINNT_WIN10_TH2”定义为预处理器宏,用“0”替换“#if/#elif”一般为Windows中的宏和UE4冲突所致,需要用如下头文件包裹冲突的头文件:#include"Windows/AllowWindowsPlatformTypes.h"#include"Windows/PreWindowsApi.h"#include"冲突的......