1.普通的子组件插槽
//Children.vue
<div><slot></slot>
</div>

使用

<Children><span>123</span>
</Children>

2.具名插槽
//Children.vue

<div><span>123</span><slot name="content"></slot>
</div>

使用

<Children><span slot="content">456</span> //会替换子组件slot内容和位置
</Children>

3.作用域插槽

//子组件
<template><div><span><slot :userData="user" name="header">{{ user.msg }}</slot><slot :hobbyData="hobby" name="footer">{{ hobby.fruit }}</slot></span></div>
</template><script>export default {data () {return {user:{firstName: 'gerace',lastName: 'haLi',},hobby:{fruit: "apple",color: "blue"}}}}
</script>
<style>
</style>
//父组件
<template><myslot><template v-slot:header="slotProps">{{ slotProps.userData.firstName }}</template><template v-slot:footer="slotProps">{{ slotProps.hobbyData.fruit }}</template></myslot>
</template><script>import myslot from './myslot';export default {components: {myslot}
</script>
<style>
</style>

针对多个插槽的情况,在写法上可以解构插槽prop,具名插槽可以使用缩写,v-slot可以使用#来代替,所以以上代码可以写成:

父组件

<template><myslot><template #header="{userData}">{{ userData.firstName }}</template><template #footer="{hobbyData}">{{ hobbyData.fruit }}</template></myslot>
</template><script>import myslot from './myslot';export default {components: {myslot}}
</script>
<style>
</style>

但是需要注意的是该缩写只在其有参数(名字)的时候才可用。这意味着以下语法是无效的:

<!-- 这样会触发警告 -->
<template><myslot><template #="{userData}">{{ userData.firstName }}</template><template #="{hobbyData}">{{ hobbyData.fruit }}</template></myslot>
</template>

总结:
1.子组件
不传参数

<slot name="one"></slot>

传递参数
user 为子组件内定义默认数据

<slot :one="user"></slot>

写法未改变

2.父组件
2.1 vue2.6.0+废弃slot=‘name’ 但仍可以使用
2.2 使用简单缩写的定义 #header 使用:要用一个 template标签包裹

<template #one> </template >

2.3 v-slot
匿名的作用域插槽和具名的作用域插槽 区别在于:
v-slot:defult=“接受的名称”(defult(匿名的可以不写,具名的相反要写的是对应的name))

v-solt可以解构接收 解构接收的字段要和传的字段一样才可以 例如 :one 对应 v-slot="{one}"

//注意上面图中子组件数据绑定方式

参考文章

具名插槽 slot使用相关推荐

  1. Dialog具名插槽slot的使用,更换多种title标题

    平时写项目的时候难免会遇到不同功能相似的Dialog弹框,可是Dialog的title是一个字符串,怎样能再title中书写两个或多个标题呢? 问题:如下图指示,他们两个使用了一个Dialog弹框,但 ...

  2. vue 中的插槽Slot基本使用和具名插槽

    一.插槽Slot的作用 1.为了让这个组件具备更强的通用性,我们不能将组件中的内容限制为固定的div.span等等这些元素: 2.比如某些情况下我们使用组件,希望组件显示的是一个按钮,某种情况下我们使 ...

  3. Vue2中插槽使用——默认插槽、具名插槽、作用域插槽

    Vue中插槽使用--默认插槽.具名插槽.作用域插槽 插槽(slot) 默认插槽 具名插槽 作用域插槽 插槽(slot) 作用:让父组件可以向子组件指定位置插入html结构,也是一种组件间通信的方式,适 ...

  4. 理解vue中的插槽------slot与slot-scope-已整理

    vue当中的插槽,指的即是slot,是组件当中的一块HTML模板.该模板是否显示,以及如何显示由其父组件说了算.不过插槽显示的位置是由子组件决定 ,你将slot写在组件template的哪块,父组件传 ...

  5. Vue的插槽slot的理解

    Vue中插槽slot的理解 1.什么是插槽 2.插槽分类 单个插槽 具名插槽 作用域插槽 3.版本升级后 v-slot的用法 默认插槽还是使用,没有变化 具名插槽 作用域插槽 本文将从之前的slot. ...

  6. vue2到vue3中插槽slot变化详解---从slot,slot-scope到v-slot的变化

    文章目录 前言 默认插槽 具名插槽 作用域插槽 解构prop的写法 v-solt 默认插槽 独占默认插槽 v-solt具名插槽 v-solt作用域插槽 解构props的写法 动态插槽名 插槽的缩写 前 ...

  7. Vue学习Day6 插槽slot使用、编译作用域、作用域插槽、模块化开发、webpack介绍、安装

    想利用暑假时间好好学习一下vue,会记录每一天的学习内容. 今天是学习vue的第6天! 起起伏伏乃人生常态,继续加油- 学习内容 1. 插槽slot slot基本使用 具名插槽slot 2. 编译作用 ...

  8. VUE之组件(插槽slot与可复用组件)

    插槽slot 首先创建个基础组件,然后在页面调用显示,如下所示 <div id="app"><blog></blog></div>& ...

  9. Vue3 slot插槽——(默认插槽、具名插槽、作用域插槽)

    一.认识插槽Slot 在开发中,我们会经常封装一个个可复用的组件: 前面我们会通过props传递给组件一些数据,让组件来进行展示: 但是为了让这个组件具备更强的通用性,我们不能将组件中的内容限制为固定 ...

最新文章

  1. Android Studio创建项目
  2. 使用SQL Server Analysis Services数据挖掘的关联规则实现商品推荐功能(五)
  3. 【Vegas原创】Oracle每日export的脚本(Windows版)
  4. 拷贝构造函数的第一个参数必须是自身类类型的引用
  5. java seam 框架简介
  6. 中国医药品市场供需状况与竞争前景研究报告2022年
  7. 一体化市场谋定国际品牌贸易 对话国际农民丰收节贸易会
  8. [HNOI2017]礼物
  9. [C++STL]C++实现stack容器适配器
  10. golang java rpc_golang两种调用rpc的方法
  11. Redis面试 - 生产环境中的 redis 是怎么部署的?
  12. qq群关系数据库 mysql_QQ群关系数据库
  13. go新手看的开源项目 哪些适合_最近大家都在用 Go 语言玩什么?这几个新的开源项目告诉你...
  14. 10个问题带你全面理解Linux性能优化
  15. linux服务器配置python环境_服务器python环境配置福利,CentOS ,Linux 一键下载python3和环境配置...
  16. 2019CSP-S初赛知识点汇总
  17. 书籍折页是什么效果_书籍折页什么样 - 卡饭网
  18. 根据点云及其对应的四元数与GPS计算出其相对坐标系的经纬坐标(matlab)
  19. 通过冥想解除困意,提升精神
  20. IPP与Opencv配合使用

热门文章

  1. 【Flutter从入门到实战】⑪、豆瓣案例-1、星星评分Widget、虚线Widget、TabbarWidget、BottomNavigationBarItem的封装、初始化配置抽取
  2. ROS机器人建模与仿真(一)--URDF机器人建模
  3. 微信小程序项目实例小程序记事本+后台
  4. HTML5七夕情人节表白网页制作【浪漫森林落叶钢琴紫色3D相册】HTML+CSS+JavaScript
  5. Java基于内存的消息队列实现
  6. oracle 审计 分区表,oracle分区表的分类及测试
  7. Linux与git使用引导(git rm 与rm命令)
  8. 华为nova5z和nova5i 哪个好?有什么区别?
  9. 使用redis所维护的代理池抓取微信文章
  10. 题注中的图一.1变成图1.1