008-slot插槽

slot插槽

  • 1、插槽 slot 的简单使用
  • 2、插槽分类
    • 2.1 默认插槽
    • 2.2 具名插槽
    • 2.3 作用域插槽

插槽就是子组件中的提供给父组件使用的一个占位符,用<slot></slot> 表示,父组件可以在这个占位符中填充任何模板代码,如 HTML、组件等,填充的内容会替换子组件的标签。
简单理解就是子组件中留下个“坑”,父组件可以使用指定内容来补“坑”。

1、插槽 slot 的简单使用

app.vue 文件引入 Son.vue 组件:

<template><div id="app">app component<Son><div class="slot-contant">插槽内容</div></Son></div>
</template><script>
import Son from './components/SlotComponents/Son'
export default {name: 'App',components: { Son }
}
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;background: #4a90e2;color: #fff;padding: 20px;
}
.slot-contant {color: #f00;font-size: 16px;
}
</style>

Son.vue文件内容:

<template><div class="son-component">son header<slot />son footer</div>
</template>
<script>
export default {}
</script>
<style scoped>
.son-component {width: 200px;height: 200px;padding: 20px;background: #ccc;border: 1px solid #ccc;
}
</style>

页面展示效果:
在这里插入图片描述

2、插槽分类

2.1 默认插槽

<slot />

2.2 具名插槽

💡 Tips:有名字的插槽,子组件可以在多个地方插入不同内容

<slot name="header"></slot>
<slot name="footer"></slot><!-- 父组件使用 -->
<template v-slot:header></template>
<template #footer></template>
<template #default></template>

举例说明:父组件

<template><div id="app">app component<Son><template #header><p>我是header部分</p></template><p>我是main(默认插槽)部分</p><template v-slot:footer><p>我是footer部分</p></template></Son></div>
</template><script>
import Son from './components/SlotComponents/Son'
export default {name: 'App',components: { Son }
}
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;background: #4a90e2;color: #fff;padding: 20px;
}
.slot-contant {color: #f00;font-size: 16px;
}
</style>

Son.vue 子组件:

<template><div class="son-component"><header><slot name="header"></slot></header><main><slot></slot></main><footer><slot name="footer"></slot></footer></div>
</template>
<script>
export default {}
</script>
<style scoped>
.son-component {width: 200px;height: 200px;padding: 20px;background: #ccc;border: 1px solid #ccc;
}
</style>

页面效果:
在这里插入图片描述

2.3 作用域插槽

💡 Tips:插槽内容能够访问子组件中才有的数据

<slot :msg="msg"></slot><!-- 父组件使用 -->
<template v-slot:default="data"><p>{{ data.msg }}</p>
</template>
<template v-slot="data"><p>{{ data.msg }}</p>
</template>

举例说明:父组件

<template><div id="app">app component<Son><template v-slot="data"><p>{{ data.msg }}</p></template></Son></div>
</template><script>
import Son from './components/SlotComponents/Son'
export default {name: 'App',components: { Son }
}
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;background: #4a90e2;color: #fff;padding: 20px;
}
.slot-contant {color: #f00;font-size: 16px;
}
</style>

Son.vue 子组件:

<template><div class="son-component"><slot :msg="msg"></slot></div>
</template>
<script>
export default {data() {return {msg: 'hello, i am son'}}
}
</script>
<style scoped>
.son-component {width: 200px;height: 200px;padding: 20px;background: #ccc;border: 1px solid #ccc;
}
</style>

页面效果:
在这里插入图片描述

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

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

相关文章

消息服务--Kafka的简介和使用

消息服务--Kafka的简介和使用 前言异步解耦削峰缓存1、消息队列2、kafka工作原理3、springBoot KafKa整合3.1 添加插件3.2 kafKa的自动配置类3.21 配置kafka地址3.22 如果需要发送对象配置kafka值的序列化器3.3 测试发送消息3.31 在发送测试消息的时候由于是开发环境中会遇到的…

Linux 学习(持续更新。。。)

wc命令 命令直接执行&#xff0c;输出包含四项&#xff0c;分别代表&#xff1a;行数、字数、字节数、文件。 例子:编译下列代码: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <fcntl.h> #inclu…

基于springboot+vue实现物资仓储物流管理系统项目【项目源码+论文说明】计算机毕业设计

基于springbootvue实现物资仓储物流管理系统演示 摘要 随着我国经济及产业化结构的持续升级&#xff0c;越来越多的企业借助信息化及互联网平台实现了技术的创新以及竞争力的提升&#xff0c;在电子经济的影响下仓储物流业务也获得了更多的关注度&#xff0c;利用系统平台实现…

Discuz论坛网站报错Discuz!Database Error(0)notconnect的解决办法

运营服务器大本营有段时间了&#xff0c;在运营期间遇到两次Discuz&#xff01;Database Error&#xff08;0&#xff09;notconnect报错&#xff0c;和你们分享遇到Discuz报错的解决办法&#xff0c;希望可以帮助到你。 首先网站报错&#xff08;0&#xff09;notconnect&…

手机号验证码重新发送

前文叙述 很久以前做的一个 demo &#xff0c;纯 HTML 、CSS、js 制作&#xff0c;一定时间段之后才可以重新发送验证码&#xff0c;如 60s 后再次发送验证码&#xff0c;在该时间段内发送验证码按钮为禁用状态&#xff0c;实战开发过程也亦是同理&#xff0c;因此记录一手。 一…

XSS-Labs靶场1---11关

一、XSS环境搭建&#xff1a; [ 靶场环境篇 ] XSS-labs 靶场环境搭建(特别详细)_xss靶场搭建-CSDN博客 &#xff08;该博主总结的较为详细&#xff0c;若侵权必删&#xff09; 常用的xss攻击语句&#xff1a; 输入检测确定标签没有过滤后&#xff0c;为了显示存在漏洞&#…

【2024】Python入门教程从零基础入门到精通,看这一篇就够了

对于刚开始接触Python的小伙伴来说&#xff0c;没有思路方法&#xff0c;不知道从何开始学习&#xff0c;把软件环境安装好后就不知所措了&#xff01;接下来我给大家分享下多位大牛倾力打造的python 系统学习流程&#xff0c;一个月才设计完的&#xff01; 一、学习Python的4…

redis缓存满了的话会发生什么?

线上问题 未及时加监控&#xff0c;导致线上redis被逐出&#xff0c;业务有损 示例&#xff1a; 一个key临时存储在redis等缓存中&#xff0c;如果该key在一段时间内有很大作用 比如一次业务请求&#xff0c;上游服务写入一个value&#xff0c;时长1小时&#xff0c;下游服务…

蓝桥杯刷题5--GCD和LCM

目录 1. GCD 1.1 性质 1.2 代码实现 2. LCM 2.1 代码实现 3. 习题 3.1 等差数列 3.2 Hankson的趣味题 3.3 最大比例 3.4 GCD 1. GCD 整数a和b的最大公约数是能同时整除a和b的最大整数&#xff0c;记为gcd(a, b) 1.1 性质 GCD有关的题目一般会考核GCD的性质。   …

QGridLayout网格布局和QVBoxLayout垂直布局有着非常大的差别

QGridLayout网格布局&#xff1a;1.把这块控件划分成一个个的 单元格 2.把你的控件填充进入 单元格 3.这些有关限制大小的函数接口统统失效 setMaximumWidth&#xff08;&#xff09; setMinimumWidth() setPolicySize()图示&#xff1a;我是用的网格布局&#xff0c;左边放QT…

300分钟吃透分布式缓存-24讲:Redis崩溃后,如何进行数据恢复的?

Redis 持久化是一个将内存数据转储到磁盘的过程。Redis 目前支持 RDB、AOF&#xff0c;以及混合存储三种模式。 RDB Redis 的 RDB 持久化是以快照的方式将内存数据存储到磁盘。在需要进行 RDB 持久化时&#xff0c;Redis 会将内存中的所有数据以二进制的格式落地&#xff0c;每…

项目实战之跨语言调用api——结合语言优点解决实际问题

前情提要 在一个项目开发中需要后端解析并分析数据得出结果报告&#xff0c;一开始用的Java后端&#xff0c;后面一堆Json数据解析的实在头疼&#xff0c;于是捡起老胶水&#xff1a;Python 辅助开发作为后端的核心算法部分服务接口 Java&#xff1a;SpringBoot 结合 RestTemp…