说明

为什么要有插槽?
是为了方便优雅地在父组件中向子组件传递向子组件传递dom结构。

代码处理

子组件

该子组件的组件名为ChildComponent:

  1. <template>
  2. <div class="the-box">
  3. <div>子组件开始</div>
  4. <div style="border: 1px solid rgb(255, 0, 0)">
  5. <div>插槽1---开始</div>
  6. <div>`slot`遍历值:{{ 子组件prop2 }}</div>
  7. <template v-for="(item, index) in 子组件prop2">
  8. <slot
  9. name="插槽1"
  10. :插槽1数据1="item"
  11. :插槽1数据2="{
  12. 子组件局部作用域变量: item,
  13. 子组件全局作用域变量: 静态设置.设置名1,
  14. }"
  15. :插槽1数据3="index"
  16. >
  17. 插槽1默认内容
  18. </slot>
  19. </template>
  20. <div>插槽1---结束</div>
  21. </div>
  22. <div style="border: 1px solid rgb(0, 255, 0)">
  23. <div>默认插槽---开始1</div>
  24. <slot>
  25. 一个不带`name`的`slot`出口会带有隐含的名字`default`;这里是插槽默认值;
  26. </slot>
  27. <div>默认插槽---结束1</div>
  28. </div>
  29. <div style="border: 1px solid rgb(255, 0, 255)">
  30. <div>默认插槽---开始2</div>
  31. <slot name="default"> </slot>
  32. <div>默认插槽---结束2</div>
  33. </div>
  34. <div style="border: 1px solid rgb(0, 0, 255)">
  35. <div>插槽2---开始</div>
  36. <div>`slot`遍历值:{{ 枚举.枚举一 }}</div>
  37. <template v-for="(item, index) in 枚举.枚举一">
  38. <slot
  39. name="插槽2"
  40. :插槽2数据1="item"
  41. :插槽2数据2="{
  42. 局部作用域: item,
  43. 全局作用域: 静态设置.设置名1,
  44. }"
  45. :插槽2数据3="index"
  46. ></slot>
  47. </template>
  48. <div>插槽2---结束</div>
  49. </div>
  50. <div>子组件结束</div>
  51. </div>
  52. </template>
  53. <script>
  54. export default {
  55. name: 'ChildComponent',
  56. props: {
  57. 子组件prop1: {
  58. type: [Object, String, undefined],
  59. default: '',
  60. },
  61. 子组件prop2: {
  62. type: [Array],
  63. default: () => {
  64. return []
  65. },
  66. },
  67. },
  68. data() {
  69. return {
  70. 枚举: {
  71. 枚举一: [
  72. { 名称: '名称1', 数值: '数值1' },
  73. { 名称: '名称2', 数值: '数值2' },
  74. ],
  75. },
  76. 静态设置: {
  77. 设置名1: '设置值1',
  78. },
  79. }
  80. },
  81. }
  82. </script>
  83. <style scoped>
  84. .the-box {
  85. margin: 20px 5px 20px 10px;
  86. border: 1px solid rgb(255, 255, 0);
  87. }
  88. .the-box > div {
  89. margin: 8px 10px 2px 5px;
  90. }
  91. </style>

同目录下的父组件

  1. <template>
  2. <div class="page-container">
  3. <div class="form-page-box">
  4. <div>父组件--开始</div>
  5. <ChildComponent
  6. 子组件prop1="父组件传入prop1值"
  7. :子组件prop2="[1, 2, 3, 4, 8]"
  8. >
  9. <template #插槽1="scope">
  10. <div style="border: 1px solid rgb(0, 0, 0)">{{ scope }}</div>
  11. </template>
  12. <template #default="scope"> </template>
  13. <template #插槽2="scope">
  14. <div>{{ scope }}</div>
  15. </template>
  16. </ChildComponent>
  17. <div>父组件--结束</div>
  18. </div>
  19. </div>
  20. </template>
  21. <script>
  22. import ChildComponent from './ChildComponent'
  23. export default {
  24. components: {
  25. ChildComponent,
  26. },
  27. }
  28. </script>
  29. <style lang="scss" scoped></style>

图片

常见名词

父组件

vue2.6.0版本之前的写法

  1. <template slot="default" slot-scope="scope">
  2. {{ scope.row.prodName }}
  3. </template>

vue2.6.0版本后新的写法

完整写法
  1. <template v-slot:default="scope">
  2. {{ scope.row.prodName }}
  3. </template>
简洁写法
  1. <template #default="scope">
  2. {{ scope.row.prodName }}
  3. </template>

子组件名词

参考

  1. 具名插槽;
  2. 一次性讲明白vue插槽slot;
  3. Vue 插槽详解;
  4. 在Vue中如何使用插槽;

2021-07-21 vue插槽的更多相关文章

  1. 2021.07.21 NPCBOT增加人类的SS和74

    #ssinsert into `creature_template_npcbot_appearance`(`entry`,`name*`,`gender`,`skin`,`face`,`hair`,` ...

  2. 学习笔记:Vue——插槽

    关于Vue插槽,只用过最简单的语法,现在完整地走一遍官方文档说明,并且探索更多用法. 01.如果组件中没有包含一个<slot>元素,则该组件起始标签和结束标签之间的任何内容都会被抛弃. 0 ...

  3. 2021.07.26 P1010 幂次方(数论)

    2021.07.26 P1010 幂次方(数论) [P1010 NOIP1998 普及组] 幂次方 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.二进制 题意: 用20 ...

  4. Vue插槽:(2.6.0以后版本弃用slot和slot-scope,改用v-slot)

    关于Vue插槽的概念,大家可以从vue官网的api查看,我是看到网站的对于初接触 这个要概念的人来说不是很清楚,我来贴下原码,就比较直观了 贴下原码: 具名插槽:v-slot:header Html: ...

  5. Vue 插槽详解

    Vue插槽,是学习vue中必不可少的一节,当初刚接触vue的时候,对这些掌握的一知半解,特别是作用域插槽一直没明白. 后面越来越发现插槽的好用. 分享一下插槽的一些知识吧. 分一下几点: 1.插槽内可 ...

  6. Murano Weekly Meeting 2015.07.21

    会议时间: 2015.07.21 主持人: Kirill Zaitsev, core from Mirantis 会议摘要:  1.murano client和murano dashboard升级到y ...

  7. Vue插槽的另外一些特性

    之前有个项目,想判断一下,某一个模板内的插槽是否被使用. 不知道是不是问题过于简单,网上没有这方面的说明.我就抽时间验证一下vue插槽相关的一些功能. 然后写下这篇随笔,希望对后来人能有一些帮助. 简 ...

  8. vue插槽用法(极客时间Vue视频笔记)

    vue插槽 插槽是用来传递复杂的内容,类似方法 <!DOCTYPE html> <html lang="en"> <head> <meta ...

  9. 2021.12.21 eleveni的刷题记录

    2021.12.21 eleveni的刷题记录 0. 有意思的题 P6701 [POI1997] Genotype https://www.luogu.com.cn/problem/P6701 状压优 ...

  10. 2021.07.17 题解 CF1385E Directing Edges(拓扑排序)

    2021.07.17 题解 CF1385E Directing Edges(拓扑排序) CF1385E Directing Edges - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) ...

随机推荐

  1. [转帖]编译安装goofys挂载Scaleway免费75G对象存储

    日常•2022年5月29日   goofys编译 goofys是一个开源的使用Go编写的s3存储桶挂载工具,主打高性能.由于使用Go编写,没有用到什么特别的依赖,自己编译也很容易.截止2022.5.2 ...

  2. [转帖]sqlplus与shell互相传值的几种情况

    https://www.cnblogs.com/youngerger/p/9068888.html sqlplus与shell互相传值的几种情况 情况一:在shell中最简单的调用sqlplus $c ...

  3. [转帖]新一代垃圾回收器ZGC的探索与实践

    1. 引入 1.1 GC之痛 很多低延迟高可用Java服务的系统可用性经常受GC停顿的困扰. GC停顿指垃圾回收期间STW(Stop The World),当STW时,所有应用线程停止活动,等待GC停 ...

  4. Linux执行SQLSERVER语句的简单方法

    背景 因为WTF的原因.经常有人让执行各种乱七八槽的删除语句 因为产品支持了10多种数据库. 这个工作量非常复杂. 为了简单起见,想着能够批量执行部分SQL. 其他的都处理过了,但是SQLSERVER ...

  5. qperf 简要总结 - 延迟与带宽信息

    总结 同一个虚拟机: 延迟: 12us 带宽: 6GB/S 同一个物理机上面的虚拟机: 延迟: 50us-100us 带宽: 1.2GB/S 同一个交换机上面的虚拟机: 延迟: 60us 带宽: 12 ...

  6. 可插拔组件设计机制—SPI

    作者:京东物流 孔祥东 1.SPI 是什么? SPI 的全称是Service Provider Interface,即提供服务接口:是一种服务发现机制,SPI 的本质是将接口实现类的全限定名配置在文件 ...

  7. fasthttp 中如何使用`Transfer-Encoding: chunked` 方式的流式内容输出

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 具体的思路是这样:通过 RequestCtx 的 Conn ...

  8. Mygin实现中间件Middleware

    本篇是mygin的第六篇,参照gin框架,感兴趣的可以从 Mygin第一篇 开始看,Mygin从零开始完全手写,在实现的同时,带你一窥gin框架的核心原理实现. 目的 实现中间件Middleware ...

  9. TienChin 渠道管理-添加渠道

    在我们平时新建一个全新的 Java 类,这个类需要存放的包不存在,可以使用如下的方式进行创建: 含义就是说,将 ChannelVO 这个类放在 vo 这个包当中,如果存在则不创建,存在就将新建的类放入 ...

  10. 小白学k8s(4)使用k8s发布go应用

    k8s发布go应用 前言 部署 镜像打包 编写yaml文件 使用ingress 什么是ingress呢 ingress与ingress-controller ingress 部署ingress 配置i ...