vue3中作用域插槽

1、先说一下具名插槽
有时在一个组件中包含多个插槽出口是很有用的。举例来说,在一个 组件中,有如下模板:

<div class="container"><header><!-- 标题内容放这里 --></header><main><!-- 主要内容放这里 --></main><footer><!-- 底部内容放这里 --></footer>
</div>

对于这种场景,<slot> 元素可以有一个特殊的 attribute name,用来给各个插槽分配唯一的 ID,以确定每一处要渲染的内容:

<div class="container"><header><slot name="header"></slot></header><main><slot></slot></main><footer><slot name="footer"></slot></footer>
</div>

这类带 name 的插槽被称为具名插槽 (named slots)。没有提供 name 的 出口会隐式地命名为“default”

要为具名插槽传入内容,我们需要使用一个含 v-slot 指令的 <template> 元素,并将目标插槽的名字传给该指令:

<BaseLayout><template v-slot:header><!-- header 插槽的内容放这里 --></template>
</BaseLayout>

v-slot有对应的简写 #,因此 可以简写为 <template #header>。其意思就是“将这部分模板片段传入子组件的 header 插槽中”。

下面我们给出完整的、向 传递插槽内容的代码,指令均使用的是缩写形式:

<BaseLayout><template #header><h1>Here might be a page title</h1></template><template #default><p>A paragraph for the main content.</p><p>And another one.</p></template><template #footer><p>Here's some contact info</p></template>
</BaseLayout>

2、作用域插槽

使用场景:
数据在组件的自身,但根据数据生成的结构需要组件的使用者来决定。

<!-- <MyComponent> 的模板 -->
<div><slot :text="greetingMessage" :count="1"></slot>
</div>

使用者:

<MyComponent v-slot="slotProps">{{ slotProps.text }} {{ slotProps.count }}
</MyComponent>

我们可以将其类比为一个函数,函数名为default

MyComponent({// 类比默认插槽,将其想成一个函数default: (slotProps) => {return `${slotProps.text} ${slotProps.count}`}
})function MyComponent(slots) {const greetingMessage = 'hello'return `<div>${// 在插槽函数调用时传入 propsslots.default({ text: greetingMessage, count: 1 })}</div>`
}

3、具名作用域插槽

使用者:

<FancyList :api-url="url" :per-page="10">// 使用格式:// 1、(简写)#插槽名='传过来的值'// 2、(非简写)v-slot:插槽名字 ='传过来的值'<template #item="{ body, username, likes }"> // 这里对传过来的值进行了解构<div class="item"><p>{{ body }}</p><p>by {{ username }} | {{ likes }} likes</p></div></template>
</FancyList>

在 之中,我们可以多次渲染 并每次都提供不同的数据 (注意我们这里使用了 v-bind 来传递插槽的 props):

<ul><li v-for="item in items"><slot name="item" v-bind="item"></slot></li>
</ul>

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

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

相关文章

【TS】进阶

一、类型别名 类型别名用来给一个类型起个新名字。 type s string; let str: s "123";type NameResolver () > string;: // 定义了一个类型别名NameResolver&#xff0c;它是一个函数类型。这个函数没有参数&#xff0c;返回值类型为string。这意味着任何被…

路灯夜景视频素材去哪里找?傍晚黄昏夜景路灯视频素材网分享

在这个数字化的时代&#xff0c;视频创作者们总是在寻找各种优质素材来提升作品的质感。特别是充满浪漫氛围的路灯夜景&#xff0c;为短视频、电影、广告等增添了独特的视觉魅力。今天&#xff0c;我为大家整理了几个优秀的视频素材网站&#xff0c;帮助您轻松找到高质量的路灯…

flask 之JWT认证实现

目录 1、JWT 1.1、JWT概述 1.2、token的生成 1.3、token校验 1.4、flask项目中实现JWT认证 1、JWT 1.1、JWT概述 JWT&#xff08;JSON Web Token&#xff09;是一种用于身份验证和授权的开放标准。它由三部分组成&#xff0c;分别是头部、负载和签名。 头部&#xff0…

最新鲸发卡v11.61开心版 无后门发卡平台源码

安装说明 上传所有文件到服务器 或者宝塔 修改thinkphp伪静态&#xff0c;php版本为7.0 /install 安装 登录后台 /admin 定时任务计划设置 进入宝塔控制面板—–计划任务 填写计划任务 解冻任务 设置时间每小时第2分钟 执行 cd /www/wwwroot/website php think UnfreezeMoney 提…

gulimall-search P125 springboot整合elasticsearch版本冲突

一、问题 spring-boot.version 2.2.4.RELEASE,在gulimall-search pom.xml中添加elasticsearch.version 7.4.2后&#xff0c;发现出现如下问题&#xff1a;elasticsearch版本是springboot引入的6.8.6&#xff0c;没有变为7.4.2。 二、原因 在gulimall-search 的pom文件中&#…

Numpy练习

参考链接 创建数组 TestArray.py import numpy as np# 一维数组 def test1DArray():one np.array([1, 2, 3])print("1D Array:\n", one)# 二维数组 def test2DArray():two np.array([[1, 2, 3], [4, 5, 6]])print("2D Array:\n", two)# 创建全0数组 d…

Python中的列表推导式和字典推导式:优雅且高效的数据结构生成方式

Python中的列表推导式和字典推导式&#xff1a;优雅且高效的数据结构生成方式 在Python中&#xff0c;列表推导式&#xff08;List Comprehensions&#xff09;和字典推导式&#xff08;Dictionary Comprehensions&#xff09;是两种强大且优雅的工具&#xff0c;它们允许开发…

分享一个简单的文件下载器

抽空写了一个用于下载文件的控制器类&#xff0c;只需要把文件的路径通过参数name传递到后台即可完成文件下载到本地&#xff0c;非常方便~ 控制器类代码 package cn.edu.sgu.www.download.controller;import cn.edu.sgu.www.download.entity.RequestURI; import org.springfr…

Kotlin 中,扩展函数(Extension Functions)

在 Kotlin 中&#xff0c;扩展函数&#xff08;Extension Functions&#xff09;是用于向已有的类添加新功能而无需继承或使用装饰模式的一个特性。这允许你通过更自然的语法为现有类型添加方法。 下面是一个简单的扩展函数示例&#xff1a; // 定义一个扩展函数&#xff0c;…

SAP ABAP 三种汇总方法

1.select sum 汇总 select key1 key2 sum ( case zhiduanwhen 1 then suliang1when 2 then suliang2end ) as cnt from table where satue in (1,2) order by key1 key2 "必有 group by key1 key2 "必有2.loop 汇总 在loo…

kettle从入门到精通 第六十四课 ETL之kettle kettle中执行SQL脚本步骤,使用需当心

1、群里有不定时会有同学反馈执行SQL脚本步骤使用有问题&#xff0c;那么咱们今天一起来学习下该步骤。trans中的执行SQL脚本有两方面功能&#xff0c;使用时需小心&#xff0c;不然很容易踩坑。 官方定义&#xff1a; 翻译&#xff1a; 您可以使用此步骤执行 SQL 脚本&#…

安装TTS被卡住不下载应该怎么操作

安装 TTS 模块时&#xff0c;如果发现下载的依赖项数量很多&#xff0c;安装时间过长&#xff0c;并且卡在某些地方&#xff0c;可以尝试以下方法&#xff1a; 1. 确认依赖项的下载是否完成 在安装过程中&#xff0c;检查是否有依赖项已经下载并安装成功。在大多数情况下&…

回溯法——跳房子

跳房子是小朋友玩的游戏。地面上画出一连串格子&#xff0c;每个格子里有一个整数&#xff0c;小朋友从外面跳入格子&#xff0c;并继续往前跳&#xff0c;直到跳出所有格子。每次跳跃的规则是&#xff0c;可以跳入下一格或下下格或下下下格。怎么跳能让落脚格子里的数的累加和…

数据库管理-第198期 升级Oracle ACE Pro,新赛季继续努力(20240605)

数据库管理198期 2024-06-05 数据库管理-第198期 升级ACE Pro&#xff0c;新赛季继续努力&#xff08;20240605&#xff09;1 惊喜2 变化3 Oracle ACE总结 数据库管理-第198期 升级ACE Pro&#xff0c;新赛季继续努力&#xff08;20240605&#xff09; 作者&#xff1a;胖头鱼的…

区间预测 | Matlab实现QRBiTCN分位数回归双向时间卷积神经网络注意力机制时序区间预测

Matlab实现QRBiTCN分位数回归双向时间卷积神经网络注意力机制时序区间预测 目录 Matlab实现QRBiTCN分位数回归双向时间卷积神经网络注意力机制时序区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现QRBiTCN分位数回归双向时间卷积神经网络注意力机制时序…

实现 Python 服务在执行完毕后主动向前端发送信息,以便前端(例如 Vue.js 应用)可以更新显示

可以通过多种方法实现 Python 服务在执行完毕后主动向前端发送信息&#xff0c;以便前端&#xff08;例如 Vue.js 应用&#xff09;可以更新显示。下面介绍几种常见的方法&#xff1a; 1. 使用 WebSockets WebSockets 是一种在客户端和服务器之间建立持久连接的通信协议&…

在网页中调用MSTSC打开远程桌面

1.修改注册表 添加自定义URL协议 MSTSC [HKEY_CLASSES_ROOT\MSTSC]"URL:MSTSCProtocol""URL Protocol"""[HKEY_CLASSES_ROOT\MSTSC\DefaultIcon] "mstsc.exe"[HKEY_CLASSES_ROOT\MSTSC\shell][HKEY_CLASSES_ROOT\MSTSC\shell\open][…

C++ STL std::vector的实现机制【面试】

std::vector 是 C 标准模板库&#xff08;STL&#xff09;中的一种序列容器&#xff0c;它封装了动态数组的实现&#xff0c;提供了一系列方法来操作这个动态数组。以下是 std::vector 的一些关键实现机制&#xff1a; 连续内存存储&#xff1a; std::vector 通过一块连续的内存…

51单片机在八位数码管上显示自己学号后八位

1、功能描述 在八位数码管上显示自己学号后八位 2、实验原理 数码管就是通过线路将各个LED灯连接在一起。 P2控制LED的段选&#xff0c; P0控制LED位选。读取时从低位向高位读取&#xff0c;P2_2为高位P2_4为地位&#xff0c;例如P2_4 1; P2_3 0; P2_2 1&#xff0c;那么…

LabVIEW飞机发动机测试与故障诊断系统

LabVIEW飞机发动机测试与故障诊断系统 基于LabVIEW开发了一个飞机发动机测试与故障诊断系统&#xff0c;能够实时监测发动机的运行参数&#xff0c;进行数据采集与分析&#xff0c;并提供故障诊断功能。系统采用高精度传感器和数据采集硬件&#xff0c;适用于发动机的性能测试、…