Vue2 第十八节 插槽

news/2024/4/28 0:09:34/文章来源:https://blog.csdn.net/chenjieyujiayou/article/details/132084760

1.默认插槽

2.具名插槽

3.作用域插槽

插槽

① 作用:让父组件可以向子组件指定位置插入html结构,也是一种组件间通信的方式,适用于父组件和子组件间通信

② 分类:默认插槽,具名插槽,作用域插槽

一.默认插槽

① 定义一个默认插槽

② 展示

 ③效果

④ 代码

App.vue

<template><div class="container"><Category title="美食"><img src="https://s3.ax1x.com/2021/01/16/srJlq0.jpg" alt="" /></Category><Category title="游戏"><ul><li v-for="(item, index) in games" :key="index">{{ item }}</li></ul></Category><Category title="电影"><videocontrolssrc="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"></video></Category></div>
</template><script>
import Category from './components/Category.vue'
export default {name: 'App',data () {return {foods: ['火锅', '烧烤', '麻辣烫'],games: ['超级玛丽', '王者荣耀', '阴阳师'],films: ['《教父》', '《消失的她》']}},components: { Category }
}
// 如果本地存在就会直接从本地拿,不会去请求代理服务器
</script>
<style>
.container {display: flex;justify-content: space-around;
}
img {width: 100%;
}
video {width: 100%;
}
</style>

Category.vue

<template><div class="category"><h3>{{ title }}</h3><!-- 定义一个插槽,等待组件的使用者进行填充 --><slot>默认值</slot></div>
</template><script>
export default {name: 'Category',props: ['title']
}
</script><style scoped>
.category {background-color: lightblue;width: 200px;height: 300px;
}
h3 {text-align: center;background-color: orange;
}
</style>

二.具名插槽

① 定义具名插槽

 ② 往插槽中放入数据

 ③ 如果有template的话,可以写成 v-slot:footer ,v-slot 只能用到template上

④ 代码

App.Vue

<template><div class="container"><Category title="美食"><imgslot="center"src="https://s3.ax1x.com/2021/01/16/srJlq0.jpg"alt=""/><a slot="footer" href="http://taobao.com">更多美食</a></Category><Category title="游戏"><ul slot="center"><li v-for="(item, index) in games" :key="index">{{ item }}</li></ul><div class="foot" slot="footer"><a href="http://taobao.com">单机游戏</a><a href="http://taobao.com">网络游戏</a></div></Category><Category title="电影"><videoslot="center"controlssrc="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"></video><template v-slot:footer><div class="foot"><a href="http://taobao.com">经典</a><a href="http://taobao.com">热门</a><a href="http://taobao.com">推荐</a></div><h4>欢迎前来观影</h4></template></Category></div>
</template><script>
import Category from './components/Category.vue'
export default {name: 'App',data () {return {foods: ['火锅', '烧烤', '麻辣烫'],games: ['超级玛丽', '王者荣耀', '阴阳师'],films: ['《教父》', '《消失的她》']}},components: { Category }
}
// 如果本地存在就会直接从本地拿,不会去请求代理服务器
</script>
<style>
.container,
.foot {display: flex;justify-content: space-around;
}
img {width: 100%;
}
video {width: 100%;
}
h4 {text-align: center;
}
</style>

 Category.vue 

<template><div class="category"><h3>{{ title }}</h3><!-- 定义一个插槽,等待组件的使用者进行填充 --><slot name="center">默认值</slot><slot name="footer">默认值</slot></div>
</template><script>
export default {name: 'Category',props: ['title']
}
</script><style scoped>
.category {background-color: lightblue;width: 200px;height: 300px;
}
h3 {text-align: center;background-color: orange;
}
</style>

三.作用域插槽

① 数据在组件的自身,但根据数据生成的结构需要组件的使用者来决定,games数据在Category中,但使用数据所遍历出来的结构由App组件决定

定义一个作用域插槽:games是传入的数据

② 往插槽中放数据(数据不在这个组件中,在别的组件中)

 ③ 解构写法

 ④ 新写法

 ⑤ 代码

App.vue

<template><div class="container"><Category title="游戏"><template scope="atguigu"><ul><li v-for="(item, index) in atguigu.games" :key="index">{{ item }}</li></ul></template></Category><Category title="游戏"><template scope="{games}"><ol><li v-for="(item, index) in games" :key="index">{{ item }}</li></ol></template></Category><Category title="游戏"><template slot-scope="{ games }"><h4 v-for="(item, index) in games" :key="index">{{ item }}</h4></template></Category></div>
</template><script>
import Category from './components/Category.vue'
export default {name: 'App',components: { Category }
}
// 如果本地存在就会直接从本地拿,不会去请求代理服务器
</script>
<style>
.container,
.foot {display: flex;justify-content: space-around;
}
img {width: 100%;
}
video {width: 100%;
}
h4 {text-align: center;
}
</style>

Category.vue 

<template><div class="category"><h3>{{ title }}</h3><!-- 定义一个插槽,等待组件的使用者进行填充 --><slot :games="games">默认值</slot></div>
</template><script>
export default {name: 'Category',props: ['title'],data () {return {games: ['超级玛丽', '王者荣耀', '阴阳师']}}
}
</script><style scoped>
.category {background-color: lightblue;width: 200px;height: 300px;
}
h3 {text-align: center;background-color: orange;
}
</style>

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

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

相关文章

【Linux】创建与删除用户

新增用户&#xff1a; adduser 用户名【添加用户】 passwd 用户名【设置用户密码】删除用户&#xff1a; userdel -r 用户名【删除用户】

【机器学习】在 MLOps构建项目 ( MLOps2)

My MLOps tutorials: Tutorial 1: A Beginner-Friendly Introduction to MLOps教程 2&#xff1a;使用 MLOps 构建机器学习项目 一、说明 如果你希望将机器学习项目提升到一个新的水平&#xff0c;MLOps 是该过程的重要组成部分。在本文中&#xff0c;我们将以经典手写数字分类…

【力扣】206. 反转链表 <链表指针>

【力扣】206. 反转链表 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 示例 2 输入&#xff1a;head [1,2] 输出&#xff1a;[2,1] 示例 3 输入&#xff1a…

Qt中ffmpeg API存储和显示摄像头视频

Qt中ffmpeg API存储和显示摄像头视频的功能需要之前写的视频ffmpegAPI的视频播放的流程。 代码源码位置&#xff1a;https://download.csdn.net/download/qq_43812868/88157743?spm1001.2014.3001.5503 一、存储和显示摄像头的视频的流程 这是读取打开视频文件的流程&#x…

8.4作业

用信号量的方式实现打印1234567后打印7654321循环交替打印。 #include<stdio.h> #include<string.h> #include<stdlib.h> #include<head.h> char buf[]"1234567"; sem_t sem; void *callBack1(void *arg) {int i0;int sstrlen(buf)-1;while…

LeetCode 27题:移除元素

题目 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长…

FreeIPA Server/Client不同版本组合,对podman rootless container的支持

FreeIPA Server/Client不同版本组合&#xff0c;对podman rootless container的支持 根据实验&#xff0c; CentOS 7.9 yum仓库自带的FreeIPA Server 4.6.8&#xff0c; ipa client版本支持CentOS 7.9 yum仓库自带的FreeIPA Client 4.6.8不支持subids&#xff0c;podman调用…

NVIDIA 535.86.05 Linux 图形驱动程序改进 Wayland 支持

NVIDIA公司近日发布了适用于 Linux、FreeBSD 和 Solaris 系统的 NVIDIA 535.86.05 图形驱动程序&#xff0c;作为其生产分支的维护更新&#xff0c;解决了各种错误和问题。 NVIDIA 535.86.05 是在 NVIDIA 535.54.03 发布一个多月之后发布的&#xff0c;它通过解决在使用某些 W…

G-channel 实现低光图像增强

G-channel 之前研究低光图像增强时&#xff0c;看到一篇博客&#xff0c;里面介绍了一种方法&#xff0c;没有说明出处&#xff0c;也没有说明方法的名字&#xff0c;这里暂时叫做 G-channel 算法。 博客地址&#xff1a;低照度图像增强&#xff08;附步骤及源码&#xff09;…

Java使用POI读取Excel名称管理器

文章目的 本文主要介绍如何使用poi读取到Excel的名称管理器中的内容。并且定位到单元格。 在企业的开发中可能需要通过名称管理器定位到某个单元格&#xff0c;然后在单元格上生成签名。 环境配置 Java&#xff1a;Jdk1.8 poi&#xff1a;5.2.3 maven依赖(pom.xml)&#x…

C++类和对象入门(下)

C类和对象入门 1. Static成员1.1 Static成员的概念2.2 Static成员的特性 2.友元2.1 友元函数2.2 友元函数的特性2.3 友元类 3. 内部类3.1 内部类的概念和特性 4. 匿名对象5. 再次理解类和对象 1. Static成员 1.1 Static成员的概念 声明为static的类成员称为类的静态成员&…

ARCGIS地理配准出现的问题

第一种。已有省级行政区矢量数据&#xff0c;在网上随便找一个相同省级行政区图片&#xff0c;利用地理配准工具给图片添加坐标信息。 依次添加省级行政区选择矢量数据、浙江省图片。 此时&#xff0c;图层默认的坐标系与第一个加载进来的省级行政区选择矢量数据的坐标系一致…

2019年09月《全国青少年软件编程等级考试》Python一级真题解析

一、单选题 第1题 关于Python的编程环境&#xff0c;下列的哪个表述是正确的&#xff1f; A&#xff1a;Python的编程环境是图形化的&#xff1b; B&#xff1a;Python只有一种编程环境ipython&#xff1b; C&#xff1a;Python自带的编程环境是IDLE&#xff1b; D&#…

Docker入门及安装

文章目录 1.Docker概述:1.什么是docker2.为什么使用docker3.docker优点4.docker资源网址 2.Docker安装1.卸载旧版本dorcker(非必要)2.设置Docker仓库安装docker引擎4.启动验证docker卸载docker 3.Docker底层原理1.docker的结构和基本概念2.docker为什么比虚拟机快 1.Docker概述…

MySQL 重置root 密码

5.7 版本 首先要把服务mysql57 关闭 net stop MySQL57 在安装的mysql57的程序的bin中 运行cmd&#xff08;管理员运行&#xff09; mysqld --defaults-file‘mysql存放数据的位置\my.ini’ --skip-grant-tables 上图 错误 注意&#xff1a;如果遇到mysqld: Can’t change dir…

SpringBoot实现数据库读写分离

SpringBoot实现数据库读写分离 参考博客https://blog.csdn.net/qq_31708899/article/details/121577253 实现原理&#xff1a;翻看AbstractRoutingDataSource源码我们可以看到其中的targetDataSource可以维护一组目标数据源(采用map数据结构)&#xff0c;并且做了路由key与目标…

T31开发笔记:librtmp拉流测试

若该文为原创文章&#xff0c;转载请注明原文出处。 T31使用librtmp拉流并保存成FLV文件或H264和AAC文件。 librtmp编译在前面有教程&#xff0c;自行编译。 实现的目的是想要获取获取rtmp的AAC流并播放&#xff0c;实时双向对讲功能。 一、硬件和开发环境 1、硬件&#xff1…

Emacs之解决键值绑定冲突问题(一百二十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

【数字IC基础】低功耗设计

低功耗技术 功耗构成静态功耗(漏电功耗)动态功耗翻转功耗(Switch Power)短路功耗(Internal Power) 不同类型的标准单元的功耗 低功耗设计方法降低芯片工作电压多阈值工艺方法电源门控&#xff08;Power Gating&#xff09;多电压域(Multi-Voltage Domain)体偏置门控时钟一个简单…

WSL1升级为WSL2

首先需要启用组件 使用管理员打开Powershell并运行 Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform启用后会要求重启计算机 从https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi获取WSL2 Linux内核更新包&#xff0c;…