当前位置: 首页 > news >正文

Vue 2 插槽

可以先阅读组件基础-简单了解通过插槽分发内容。


一、插槽定义

插槽将子组件标签间的内容分发到子组件模板的<slot>标签位置

如果没有<slot>标签,那么该内容将被丢弃


二、编译作用域

内容在哪个作用域编译,就可以访问哪个作用域的数据

1.父级模板的作用域

在父组件的模板中定义的变量,可以在整个父组件的模板中访问,包括子组件中的插槽内容。

例如,我们在父组件中定义一个变量url,在子组件插槽内容中访问:

<template><div><navigation-link url="./index">This URL is {{url}}</navigation-link></div>
</template>

2.子级模板的作用域

在子组件中定义的数据和变量,只能在子组件中访问,而不能在父组件中访问。


三、后备内容

插槽的后备内容即没有提供内容时的默认内容

定义方式很简单:

<slot>Slot的默认内容</slot>

四、具名插槽

顾名思义:具有名字的插槽。

你可以为插槽指定名称name,以便将内容分发到特定的插槽中。

接着,通过在template元素上使用v-slot:插槽名参数指令使用具名插槽:

完整示例:

<!DOCTYPE html>
<html><head><title>Vue 2 具名插槽 Demo</title><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head><body><div id="app"><my-layout><p>主要内容的一个段落。</p><p>另一个主要段落。</p><template v-slot:header><h1>这里可能是一个页面标题</h1></template><template v-slot:footer><p>这里是一些联系信息</p></template></my-layout></div><script>Vue.component('my-layout',{template:`<div><header><slot name="header"></slot></header><main><!--默认插槽,隐含name为`default`--><slot></slot></main><footer><slot name="footer"></slot></footer></div>`})var vm = new Vue({el: '#app',});</script>
</body></html>

在这里插入图片描述

虽然我们故意将默认插槽的内容放在了名为header的代码前面,但是结果依然按照插槽原本的顺序排列。


动态插槽名

我们可以使用动态参数绑定插槽名。

<template v-slot:[dynamicSlotName]></template>

具名插槽的缩写

v-slot指令也有缩写,即使用#替代v-slot:,这样做我们就必须明确给出其插槽名称。


五、作用域插槽

作用域插槽这个概念是指让插槽内容能够访问子组件中才有的数据

我们只需给<slot>绑定prop,然后使用v-slot的值访问该prop。v-slot的值实际上是所有绑定的prop的集合。

上例子:

<!DOCTYPE html>
<html><head><title>Vue 2 作用域插槽 Demo</title><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head><body><div id="app"><my-component><template v-slot="slotProps"><p>{{slotProps.text}}</p></template></my-component></div><script>Vue.component('my-component', {template: `<div><slot text="hello"></slot></div>`})var vm = new Vue({el: '#app',});</script>
</body></html>

在这里插入图片描述

注意,上面例子中我们v-slot指令没有带参数,实际上它默认带了个default参数,如果存在别的具名插槽,那么我就必须为v-slot指令带上参数

通过作用域插槽的机制,我们可以实现父组件控制插槽内容来控制子组件渲染不同的结果。

额外的不相关话题:使用v-bind指令时,什么时候加:

私以为:这取决于v-bind绑定的属性的值,其值为静态字符串,不加:,其值若为变量或对象字面量,则加:


解构插槽prop

事实上,插槽内容会被封装在一个函数内,v-slot的值就是其参数

作为函数参数,我们可以使用JavaScript的解构语法,这会使得代码更简洁。

1.普通解构

<template v-slot="{text}"><p>{{text}}</p>
</template>

2.重命名prop

<template v-slot="{text:msg}"><p>{{msg}}</p>
</template>

3.指定后备内容

<template v-slot="{text={msg:'Hello'}}"><p>{{text.msg}}</p>
</template>

相关文章:

Vue 2 插槽

可以先阅读组件基础-简单了解通过插槽分发内容。 一、插槽定义 插槽将子组件标签间的内容分发到子组件模板的<slot>标签位置。 如果没有<slot>标签&#xff0c;那么该内容将被丢弃。 二、编译作用域 内容在哪个作用域编译&#xff0c;就可以访问哪个作用域的数据…...

Spring 容器启动耗时统计

为了了解 Spring 为什么会启动那么久&#xff0c;于是看了看怎么统计一下加载 Bean 的耗时。 极简版 几行代码搞定。 import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor;import java.util.HashMap; imp…...

1. 优化算法学习

参考文献 1609&#xff1a;An overview of gradient descent optimization algorithms 从 SGD 到 Adam —— 深度学习优化算法概览(一) - 知乎 机器学习札记 - 知乎...

再获荣誉丨通付盾WAAP解决方案获“金鼎奖”优秀金融科技解决方案

今年四月&#xff0c;2023中国国际金融展在首钢会展中心成功落下帷幕。中国国际金融展作为金融开放创新成果的展示、交流、传播平台&#xff0c;历经多年发展,已成为展示中国金融发展成就、宣传金融改革成果、促进金融产业创新和推动金融信息化发展的有效平台。 “金鼎奖”评选…...

【腾讯云 TDSQL-C Serverless 产品测评】“橡皮筋“一样的数据库『MySQL高压篇』

【腾讯云 TDSQL-C Serverless 产品测评】"橡皮筋"一样的数据库 活动介绍服务一览何为TDSQL &#xff1f;Serverless 似曾相识&#xff1f; 降本增效&#xff0c;不再口号&#xff1f;动手环节 --- "压力"山大实验前瞻稍作简介资源扩缩范围&#xff08;CCU&…...

python http文件上传

server端代码 import os import cgi from http.server import SimpleHTTPRequestHandler, HTTPServer# 服务器地址和端口 host = 0.0.0.0 port = 8080# 处理文件上传的请求 class FileUploadHandler(SimpleHTTPRequestHandler):def do_POST(self):# 解析多部分表单数据form = …...

Android学习之路(9) Intent

Intent 是一个消息传递对象&#xff0c;您可以用来从其他应用组件请求操作。尽管 Intent 可以通过多种方式促进组件之间的通信&#xff0c;但其基本用例主要包括以下三个&#xff1a; 启动 Activity Activity 表示应用中的一个屏幕。通过将 Intent 传递给 startActivity()&…...

vue项目配置git提交规范

vue项目配置git提交规范 一、背景介绍二、husky、lint-staged、commitlint/cli1.husky2.lint-staged3.commitlint/cli 三、具体使用1.安装依赖2.运行初始化脚本3.在package.json中配置lint-staged4.根目录新增 commitlint.config.js 4.提交测试1.提示信息格式错误时2.eslint校验…...

影响交叉导轨运行速度的因素有哪些?

交叉导轨具有精度高&#xff0c;速度快&#xff0c;承载能力大、结构简单等特点&#xff0c;被广泛应用在固晶机、点胶设备、自动化设备、OA机器及其周边机器、测定器、印刷基板开孔机&#xff0c;精密机器&#xff0c;光学测试仪、光学工作台、操纵机构、X 射缐装置等的滑座部…...

List转Map

一、list转map Map<Long, User> maps userList.stream().collect(Collectors.toMap(User::getId,Function.identity())); 看来还是使用JDK 1.8方便一些。 二、另外&#xff0c;转换成map的时候&#xff0c;可能出现key一样的情况&#xff0c;如果不指定一个覆盖规则&…...

ES:一次分片设计问题导致的故障

### 现象&#xff1a; 1. 单节点CPU持续高 2.写入骤降 3.线程池队列积压&#xff0c;但没有reject 4.使用方没有记录日志 ### 排查 1.ES监控 只能看到相应的结果指标&#xff0c;无法反应出原因。 2.ES日志&#xff1a;大量日志打印相关异常&#xff08;routate等调用栈&a…...

vue 简单实验 自定义组件 综合应用 传参数 循环

1.代码 <script src"https://unpkg.com/vuenext" rel"external nofollow" ></script> <div id"todo-list-app"><ol><!--现在我们为每个 todo-item 提供 todo 对象todo 对象是变量&#xff0c;即其内容可以是动态的。…...

【OpenCV实战】2.OpenCV基本数据类型实战

OpenCV基本数据类型实战 〇、实战内容1 OpenCV helloworld1.1 文件结构类型1.2 CMakeList.txt1.3 Helloworld 2. Image的基本操作3. OpenCV 基本数据类型4. 读取图片的像素 & 遍历图片4.1 获取制定像素4.2 遍历图片 5. 图片反色5.1 方法1 &#xff1a;遍历5.2 方法2 &#…...

MyBatis进阶:告别SQL注入!MyBatis分页与特殊字符的正确使用方式

目录 引言 一、使用正确的方式实现分页 1.1.什么是分页 1.2.MyBatis中的分页实现方式 1.3.避免SQL注入的技巧 二、特殊字符的正确使用方式 2.1.什么是特殊字符 2.2.特殊字符在SQL查询中的作用 2.3.如何避免特殊字符引起的问题 2.3.1.使用CDATA区段 2.3.2.使用实体引…...

安装Node(脚手架)

目录 一&#xff0c;安装node&#xff08;脚手架&#xff09;1.1&#xff0c; 配置vue.config.js1.2&#xff0c; vue-cli3x的目录介绍1.3&#xff0c; package.json 最后 一&#xff0c;安装node&#xff08;脚手架&#xff09; 从官网直接下载安装即可&#xff0c;自带npm包管…...

R语言10-R语言中的循环结构

在R语言中&#xff0c;有几种常用的循环结构&#xff0c;可以用来多次执行特定的代码块。以下是其中的两种主要循环结构&#xff1a; for循环&#xff1a; for 循环用于按照一定的步长迭代一个序列&#xff0c;通常用于执行固定次数的循环。 for (i in 1:5) {print(i) }while…...

【Spring】一次性打包学透 Spring | 阿Q送书第五期

文章目录 如何竭尽可能确保大家学透Spring1. 内容全面且细致2. 主题实用且本土化3. 案例系统且完善4. 知识有趣且深刻 关于作者丁雪丰业内专家推图书热卖留言提前获赠书 不知从何时开始&#xff0c;Spring 这个词开始频繁地出现在 Java 服务端开发者的日常工作中&#xff0c;很…...

第 7 章 排序算法(4)(插入排序)

7.7插入排序 7.7.1插入排序法介绍: 插入式排序属于内部排序法&#xff0c;是对于欲排序的元素以插入的方式找寻该元素的适当位置&#xff0c;以达到排序的目的。 7.7.2插入排序法思想: 插入排序&#xff08;Insertion Sorting&#xff09;的基本思想是&#xff1a;把n个待排…...

JavsScript知识框架

JavaScript学习框架性总结 要系统性地精通 JavaScript&#xff0c;需要涵盖广泛的知识点&#xff0c;从基础到高级。以下是一些需要掌握的关键知识点&#xff08;当然不止这些&#xff09;&#xff1a; 基础语法和核心概念&#xff1a; 变量、数据类型、运算符作用域闭包this …...

el-input添加自定义指令只允许输入中文/英文/数字,兼容输入法事件

省流 script: directives: {regexp: {inserted: (el, binding, vnode) > {let composition falseconst formatValue function (e) {if (composition) return// vnode.componentInstance组件实例vnode.componentInstance.$emit(input, e.target.value.replace(/[^\u4e00-…...

0基础学习VR全景平台篇 第89篇:智慧眼-安放热点

一、功能说明 安放热点&#xff0c;是智慧眼成员们正式进入城市化管理的第一步&#xff0c;即发现问题后以安放热点的形式进行标记&#xff0c;再由其他的角色成员对该热点内容作出如核实、处理、确认完结等操作&#xff08;具体流程根据项目实际情况而定&#xff09;。 二、…...

java中用SXSSFWorkbook把多个list数据和单个实体dto导出到excel如何导出到多个sheet页详细实例?(亲测)

以下是一个详细的示例&#xff0c;展示了如何使用SXSSFWorkbook将多个List数据和单个实体DTO导出到多个Sheet页&#xff1a; import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.streaming.SXSSFSheet; import org.apache.poi.xssf.streaming.S…...

SpringBoot 01 如何创建 和pom的解析

目录 1 Springboot的创建 步骤 2 项目的书写和运行 创建service包并在其下写一个service文件 项目的运行 pom文件的一些配置 parent web test 打包 打包过程 1 Springboot的创建 步骤 首先new一个新项目 然后依照如下创建 2 项目的书写和运行 创建service包并…...

axios详解

1.安装axios&#xff1a;npm install axios&#xff0c;等待安装完毕即可 2.引用axios&#xff1a;在需要使用的页面中引用 import axios from axios即可 get和post大同小异&#xff0c;一个是跟在url后面一个是跟在请求体里的 axios({method&#xff1a;"post/get&quo…...

Docker分布式仓库

Harbor 是一个用于存储和分发 Docker 镜像的企业级 Registry 服务器&#xff0c;由 vmware 开源&#xff0c;其通过添加一些企业必需的功能特性&#xff0c;例如安全、标识和管理等&#xff0c;扩展了开源 Docker Distribution。作为一个企业级私有 Registry 服务器&#xff0c…...

SQL注入之万能用户名

文章目录 分析代码原理实现 分析代码 在安装的cms数据库目录C:\phpStudy\WWW\cms\admin下找到login.action.php文件&#xff0c;查看第20行&#xff0c;发现如下php代码&#xff1a; $user_row $db->getOneRow("select userid from cms_users where username "…...

ubuntu20搭建环境使用的一下指令

1.更新源 sudo vim etc/apt/sources.listdeb http://mirrors.aliyun.com/ubuntu/ xenial main deb-src http://mirrors.aliyun.com/ubuntu/ xenial maindeb http://mirrors.aliyun.com/ubuntu/ xenial-updates main deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates…...

GAN(生成对抗网络)

简介&#xff1a;GAN生成对抗网络本质上是一种思想&#xff0c;其依靠神经网络能够拟合任意函数的能力&#xff0c;设计了一种架构来实现数据的生成。 原理&#xff1a;GAN的原理就是最小化生成器Generator的损失&#xff0c;但是在最小化损失的过程中加入了一个约束&#xff0…...

实时同步ES技术选型:Mysql+Canal+Adapter+ES+Kibana

基于之前的文章&#xff0c;精简操作而来 让ELK在同一个docker网络下通过名字直接访问Ubuntu服务器ELK部署与实践使用 Docker 部署 canal 服务实现MySQL和ES实时同步Docker部署ES服务&#xff0c;canal全量同步的时候内存爆炸&#xff0c;ES/Canal Adapter自动关闭&#xff0c…...

禅道后台命令执行漏洞

漏洞简介 禅道是第一款国产的开源项目管理软件。它集产品管理、项目管理、质量管理、文档管理、 组织管理和事务管理于一体&#xff0c;是一款专业的研发项目管理软件&#xff0c;完整地覆盖了项目管理的核心流程。 禅道管理思想注重实效&#xff0c;功能完备丰富&#xff0c;…...

网站顶级栏目403/廊坊网站seo

本人是个智能家居爱好者&#xff0c;从入坑智能家居以来&#xff0c;已经有大约60个设备&#xff0c;手动智能大约50个&#xff0c;智能联动约50个。在创建这些智能的时候&#xff0c;发现能记录某个状态的状态记录器非常有用&#xff0c;比如某些灯光智能&#xff0c;只需晚上…...

范文写作网站/百度统计流量研究院

遇坑整理 遇到了就记下 2021-07-06 14:42 bj spirng boot运行application报错&#xff1a; 找不到或无法加载主类 解决措施&#xff1a; >点击IDEA最右边的Maven我们可以看到我们的项目, >Lifecycle >clean(情况加载及配置文件)>install(重新加载配置) 解决. idea …...

野花免费观看日本电影哔哩哔哩/长春百度推广排名优化

目录UART简介Keil操作使用keil观察管脚时序波形总结参考UART简介 通用异步收发传输器&#xff08;Universal Asynchronous Receiver/Transmitter)&#xff0c;通常称作UART。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片&…...

wordpress主题插件免费/东莞seo优化推广

近日&#xff0c;有同事遇到一个奇怪问题&#xff1a;在开发环境&#xff0c;apache能正常支持中文文件下载&#xff0c;但切换到测试环境就404错误&#xff0c;找不文件&#xff0c;两个环境都是 Linux系统。我起先怀疑的是Linux下需要对apache进行配置&#xff0c;以支持中文…...

装饰公司怎么做微网站/营销推广平台

文章目录1.vi /etc/crontab命令2.crontab -e命令2.1频率设置2.2命令设置3.错误分析3.1.python路径原因3.2. 文件权限原因3.3. 文件路径原因4.其他命令我用的是ubuntu 20.04. 1.vi /etc/crontab命令 这个命令只有root用户才可以使用&#xff0c;所以应该是sudo vi /etc/cronta…...

免费网站空间有什么用/百度app安装免费下载

官方推荐使用 JSAPI Loader (推荐) JSAPI Loader是高德提供的 API 加载器&#xff0c;可帮助开发者快速定位、有效避免加载引用地图 JSAPI 各种错误用法&#xff0c;具有以下特性&#xff1a; 支持以 普通JS 和 npm包 两种方式使用&#xff1b;有效避免错误异步加载导致的 JSA…...