vue中的插槽用法(动态插槽)

news2024/11/19 19:19:42

vue中提供了一种通讯方式叫插槽>分为:默认插槽、具名插槽(作用域插槽)

1. 当一个组件有不确定的结构时, 就需要使用slot技术了

2. 注意: 插槽内容是在父组件中编译后, 再传递给子组件

3. 如果决定结构的数据在父组件, 那用默认slot或具名slot

(1) 当只有一个不确定的结构时, 可以使用默认slot

(2) 当有多个不确定的结构时, 可以使用具名slot
(3)如果决定结构的数据在子组件, 那需要使用具名slot(作用域slot)

在 Vue3 中,作用域插槽已被废弃,改为了新的 v-slot 语法。新的 v-slot 语法与 Vue2 中的作用域插槽类似,但是使用方式有所不同。

在 Vue3 中,我们可以使用 v-slot 来声明一个插槽,并绑定插槽的参数。

<template v-slot:footer>
</template>
<!--简写法:-->
<template #footer>
</template>

默认插槽和具名插槽的用法+动态插槽名:

父组件

<template>
  <Child>
    <template v-slot:header>{{text}}传来的具名插槽header</template>
    <template #header2><p>{{text}}传来的具名插槽header2</p></template>
    
    <p>{{text}}传来的默认插槽1</p>
    <p>{{text}}传来的默认插槽2</p>

    <template v-slot:footer="{title}">
      <p>父组件来控制插槽内容:{{ title }}</p>
    </template>

    <!-- 动态插槽名 -->
    <template v-slot:[mySlotName1]>
      <p>动态插槽名1</p>
    </template>
    <!-- 缩写动态插槽名 -->
    <template #[mySlotName2]>
      <p>动态插槽名2</p>
    </template>
  </Child>
</template>

<script lang="ts">
// vue3.0版本语法
import { ref, defineComponent } from "vue";
import Child from './child.vue'

export default defineComponent({
  name: "父组件",
  components: {
    Child
  },
  setup() {
    const text = ref('父组件');
    const mySlotName1 = ref('name1')
    const mySlotName2 = ref('name2')
    // 3秒后 将动态的插槽name1 和 name2 调换位置
    setTimeout(() => {
      mySlotName1.value = 'name2'
      mySlotName2.value = 'name1'
    }, 3000)

    return {
      text,mySlotName1,mySlotName2
    };
  },
});
</script>

子组件

<template>
  <div style="font-size: 14px">
    <header>
      <!--具名插槽-->
      <slot name="header"></slot>  
      <slot name="header2"></slot> 
    </header>
    <main>
      <!--默认插槽-->
      <slot></slot> 
    </main>
    <footer>
      <!--具名插槽-->
      <slot name="footer" :title="title"></slot> 
    </footer>
    <slot name="name1" ></slot> 
    <slot name="name2" ></slot> 
  </div>
</template>

<script lang="ts">
// vue3.0版本语法
import { ref, defineComponent } from "vue";

export default defineComponent({
  name: "Child",
  setup() {
    const title = ref('子组件title');
    
    return {
      title
    };
  },
});
</script>

初始页面显示效果:

3秒后页面显示效果:

可以看到3秒后 动态的插槽name1 和 name2 调换位置了

欢迎关注我的原创文章:小伙伴们!我是一名热衷于前端开发的作者,致力于分享我的知识和经验,帮助其他学习前端的小伙伴们。在我的文章中,你将会找到大量关于前端开发的精彩内容。

学习前端技术是现代互联网时代中非常重要的一项技能。无论你是想成为一名专业的前端工程师,还是仅仅对前端开发感兴趣,我的文章将能为你提供宝贵的指导和知识。

在我的文章中,你将会学到如何使用HTML、CSS和JavaScript创建精美的网页。我将深入讲解每个语言的基础知识,并提供一些实用技巧和最佳实践。无论你是初学者还是有一定经验的开发者,我的文章都能够满足你的学习需求。

此外,我还会分享一些关于前端开发的最新动态和行业趋势。互联网技术在不断发展,新的框架和工具层出不穷。通过我的文章,你将会了解到最新的前端技术趋势,并了解如何应对这些变化。

我深知学习前端不易,因此我将尽力以简洁明了的方式解释复杂的概念,并提供一些易于理解的实例和案例。我希望我的文章能够帮助你更快地理解前端开发,并提升你的技能。

如果你想了解更多关于前端开发的内容,不妨关注我的原创文章。我会不定期更新,为你带来最新的前端技术和知识。感谢你的关注和支持,我们一起探讨交流技术共同进步,期待与你一同探索前端开发的奇妙世界!

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

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

相关文章

WPF创建进度条

使用wpf做一个原生的进度条&#xff0c;进度条上面有值&#xff0c;先看效果。 功能就是点击按钮&#xff0c;后台处理数据&#xff0c;前台显示处理数据的变化&#xff0c;当然还可以对进度条进行美化和关闭的操作&#xff0c;等待后台处理完毕数据&#xff0c;然后自动关闭。…

OPENWRT路由配置IPV6公网访问

前提&#xff1a;已经拥有ipv6地址&#xff0c;不会配置ipv6的同学可以看我的上一篇文章。 一、光猫配置 1.1、修改光猫连接方式变为桥接&#xff1a; 其中需要注意的点为&#xff1a; 1.需要将原先的xxxx_VID_41的连接删掉&#xff0c;然后按照下面的配置进行 2.删掉之前…

相关性分析和作图

相关的类型 1. Pearson、Spearman和Kendall相关 Pearson 积差相关系数衡量了两个定量变量之间的线性相关程度。&#xff08;连续&#xff09; Spearman等级相关系数则衡量分级定序变量之间的相关程度。&#xff08;分类&#xff09; Kendall’s Tau 相关系数也是一种非参数的…

数据结构 | 查找

基本概念 关键字&#xff1a;数据元素中唯一标识该元素的某个数据项的值&#xff0c;使用基于关键字的查找&#xff0c;查找结果应该是唯一的。例如&#xff0c;在由一个学生元素构成的数据集合中&#xff0c;学生元素中“学号”这一数据项的值唯一地标识一名学生。 查找表&a…

【深入解析git和gdb:版本控制与调试利器的终极指南】

【本节目标】 1. 掌握简单gdb使用于调试 2. 学习 git 命令行的简单操作, 能够将代码上传到 Github 上 1.Linux调试器-gdb使用 1.1.背景 程序的发布方式有两种&#xff0c;debug模式和release模式release模式不可被调试&#xff0c;debug模式可被调试Linux gcc/g出来的二进制…

钉钉直播不了检查防火墙配置没有拦截应用测试直通都放行的,电脑还可以ping通直播域名,就是开始不了直播

环境: 防火墙 AF8.0.17 Win10 专业版 问题描述: 钉钉直播不了检查防火墙配置没有拦截应用测试直通都放行的,电脑还可以ping通直播域名,就是开始不了直播 钉钉直播不了 不能直播电脑电脑可以ping通直播域名 防火墙查了3个域名都没有拦截,AF测试应用直通都放行的 解…

CSS问题:如何实现瀑布流布局?

前端功能问题系列文章&#xff0c;点击上方合集↑ 序言 大家好&#xff0c;我是大澈&#xff01; 本文约2500字&#xff0c;整篇阅读大约需要4分钟。 本文主要内容分三部分&#xff0c;如果您只需要解决问题&#xff0c;请阅读第一、二部分即可。如果您有更多时间&#xff…

新!2023初中生古诗文大会阅读专辑的考点Word版和在线模拟题来了

如六分成长之前的文章中所述&#xff0c;小学生古诗文大会复选&#xff08;复赛&#xff09;的出题趋势表明&#xff0c;有一些题目出自小学生古诗文阅读专辑&#xff0c;大家纷纷表示考得很细、很难。 所以合理推测&#xff0c;初中生古诗文大会复选&#xff08;复赛&#xf…

如何运行C/C++程序

一、在线运行C/C 码曰 - 让代码在云端多飞一会&#xff1a;这是一个支持C/C&#xff0c;Java&#xff0c;Python等多种语言的在线编程&#xff0c;编译运行&#xff0c;粘贴分享的平台。你可以在这里输入你的代码&#xff0c;点击运行按钮&#xff0c;就可以看到输出结果。你也…

Redis(二):常见数据类型:String 和 哈希

引言 Redis 提供了 5 种数据结构&#xff0c;理解每种数据结构的特点对于 Redis 开发运维⾮常重要&#xff0c;同时掌握每 种数据结构的常⻅命令&#xff0c;会在使⽤ Redis 的时候做到游刃有余。 Redis 的命令有上百种&#xff0c;我们不可能全部死记硬背下来&#xff0c;但是…

9.2 Windows驱动开发:内核解析PE结构导出表

在笔者的上一篇文章《内核特征码扫描PE代码段》中LyShark带大家通过封装好的LySharkToolsUtilKernelBase函数实现了动态获取内核模块基址&#xff0c;并通过ntimage.h头文件中提供的系列函数解析了指定内核模块的PE节表参数&#xff0c;本章将继续延申这个话题&#xff0c;实现…

vue实现动态路由菜单!!!

目录 总结一、步骤1.编写静态路由编写router.jsmain.js注册 2.编写permisstions.js权限文件编写permisstions.jsaxios封装的APIstore.js状态库system.js Axios-APIrequest.js axios请求实例封装 3.编写菜单树组件MenuTree.vue 4.主页中使用菜单树组件 总结 递归处理后端响应的…

java基础-IO

1、基础概念 1.1、文件(File) 文件的读写可以说是开发中必不可少的部分&#xff0c;因为系统会存在大量处理设备上的数据&#xff0c;这里的设备指硬盘&#xff0c;内存&#xff0c;键盘录入&#xff0c;网络传输等。当然这里需要考虑的问题不仅仅是实现&#xff0c;还包括同步…

人工智能|机器学习——机器学习如何判断模型训练是否充分

一、查看训练日志 训练日志是机器学习中广泛使用的训练诊断工具&#xff0c;每个 epoch 或 iterator 结束后&#xff0c;在训练集和验证集上评估模型&#xff0c;并以折线图的形式显示模型性能和收敛状况。训练期间查看模型的训练日志可用于判断模型训练时的问题&#xff0c;例…

IOC DI入门

1.加上Component&#xff0c;控制翻转&#xff0c;将service和dao都交给IOC容器管理&#xff0c;成为IOC容器中的bean。用哪个类就在哪个类上面加component。 2.加上autowired。依赖注入。controller依赖于service&#xff0c;service依赖于dao。加上时&#xff0c;IOC容器会提…

Taro3+Vue3重构Mpvue小程序项目踩坑记

1、Taro小程序编译时报错&#xff1b; 原因:页面中存在小程序识别不了的标签&#xff1b;如div解决方法&#xff1a; 将div标签替换成小程序可识别的标签&#xff1b; 安装Taro中提供的插件:tarojs/plugin-html, 使其可被识别&#xff1b; 插件安装教程参考Taro官网&#xff1…

Matlab 点云曲率计算(之二)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 之前已经讨论过许多关于计算曲率的问题,这里使用一个通过拟合三次曲面方程的方式来计算曲率,计算过程如下图所示: 二、实现代码 %********

springboot+bootstarp+jsp房屋租赁系统ssm_t65a9

小型房屋租赁系统主要有管理员、房东和租户三个功能模块。以下将对这三个功能的作用进行详情的剖析。 管理员模块&#xff1a;管理员是系统中的核心用户&#xff0c;管理员登录后&#xff0c;可以对后台系统进行管理。主要功能有个人中心、房东管理、租户管理、房源城市管理、房…

数据库应用:MongoDB 库与集合管理

目录 一、理论 1.MongoDB用户管理 2.MogoDB库管理 3.MogoDB集合管理 二、实验 1.MongoDB用户管理 2.MogoDB库管理 3.MogoDB集合管理 三、问题 1.不显示新创建的数据库 2.插入数据报错 3.删除指定数据库报错 一、理论 1.MongoDB用户管理 (1) 内置角色 数据库用户…

什么是高级语言、机器语言、汇编语言?什么是编译和解释?

1、高级语言 计算机程序是一种让计算机执行特定任务的方法。程序是由程序员用一种称为编程语言的特殊语言编写的。编程语言有很多种&#xff0c;例如 C、C、Java、Python 等。这些语言被称为高级语言&#xff0c;因为它们更接近人类的自然语言&#xff0c;而不是计算机能够直接…