• vue中插槽slot


    一、插槽-默认插槽

    1.作用

    让组件内部的一些 结构 支持 自定义

    在这里插入图片描述

    2.需求

    将需要多次显示的对话框,封装成一个组件

    3.问题

    组件的内容部分,不希望写死,希望能使用的时候自定义。怎么办

    4.插槽的基本语法

    1. 组件内需要定制的结构部分,改用 占位
    2. 使用组件时, 标签内部, 传入结构替换slot
    3. 给插槽传入内容时,可以传入纯文本、html标签、组件

    在这里插入图片描述

    5.代码示例

    MyDialog.vue

    
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77

    App.vue

    
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    6.总结

    场景:组件内某一部分结构不确定,想要自定义怎么办

    使用:插槽的步骤分为哪几步?

    二、插槽-后备内容(默认值)

    1.问题

    通过插槽完成了内容的定制,传什么显示什么, 但是如果不传,则是空白

    在这里插入图片描述

    能否给插槽设置 默认显示内容 呢?

    2.插槽的后备内容

    封装组件时,可以为预留的 插槽提供后备内容(默认内容)。

    3.语法

    在 标签内,放置内容, 作为默认显示内容
    在这里插入图片描述

    4.效果

    • 外部使用组件时,不传东西,则slot会显示后备内容

    • 外部使用组件时,传东西了,则slot整体会被换掉

    5.代码示例

    App.vue

    
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    三、插槽-具名插槽

    1.需求

    一个组件内有多处结构,需要外部传入标签,进行定制 在这里插入图片描述

    上面的弹框中有三处不同,但是默认插槽只能定制一个位置,这时候怎么办呢?

    2.具名插槽语法

    • 多个slot使用name属性区分名字

      在这里插入图片描述

    • template配合v-slot:名字来分发对应标签

      在这里插入图片描述

    3.v-slot的简写

    v-slot写起来太长,vue给我们提供一个简单写法 v-slot: —> #

    4.总结

    • 组件内 有多处不确定的结构 怎么办?
    • 具名插槽的语法是什么?
    • v-slot:插槽名可以简化成什么?

    四、作用域插槽

    1.插槽分类

    • 默认插槽

    • 具名插槽

      插槽只有两种,作用域插槽不属于插槽的一种分类

    2.作用

    定义slot 插槽的同时, 是可以传值的。给 插槽 上可以 绑定数据,将来 使用组件时可以用

    3.场景

    封装表格组件
    在这里插入图片描述

    4.使用步骤

    1. 给 slot 标签, 以 添加属性的方式传值

      
      
      • 1
    2. 所有添加的属性, 都会被收集到一个对象中

      { id: 3, msg: '测试文本' }
      
      • 1
    3. 在template中, 通过 #插槽名= "obj" 接收,默认插槽名为 default

      
        
      
      
      • 1
      • 2
      • 3
      • 4
      • 5

    5.代码示例

    MyTable.vue

    
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94

    App.vue

    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
  • 相关阅读:
    React18的useEffect会执行两次
    动态规划——01背包
    F1. 生活在树上(easy version)树,dfs
    快速挖掘设备逻辑洞方法分享
    架构的未来——End
    在Android 上开发一个显示系统属性的APK应用
    FFmpeg编译支持x264/openH264/dash
    搭建集群版 Eureka Server 服务注册中心
    FPGA SERDESE2 (SDR收发仿真)
    【状态估计】将变压器和LSTM与卡尔曼滤波器结合到EM算法中进行状态估计(Python代码实现)
  • 原文地址:https://blog.csdn.net/m0_53951384/article/details/134259773