插槽指的是什么?插槽的基础用法体验

2023-09-18 18:01:16

什么是插槽

插槽(Slot)是 vue 为组件的封装者提供的能力。允许开发者在封装组件时,把不确定的、希望由用户指定的部分定义为插槽。

1666922191722_1.png

<template>
  <p>这是MyCom1组件的第1个p标签</p>
  <!--通过slot标签,为用户预留内容占位符(插槽)-->
  <slot></slot>
  <p>这是MyCom1组件最后一个p标签</p>
</template>
<my-com-1>
  <!-在使用 MyCom1 组件时,为插槽指定具体的内容-->
  <p>~~~用户自定义的内容~~~</p>
</my-com-1>

如果在封装组件时没有预留任何插槽,则用户提供的任何自定义内容都会被丢弃。示例代码如下:

<template>
  <p>这是MyCom1组件的第1个p标签</p>
  <!--封装组件时吗,没有预留任何插槽-->
  <p>这是MyCom1组件最后一个p标签</p>
</templa>
<my-com-1>
  <!--自定义的内容会被丢弃-->
  <p>~…-用户自定义的内容~~~</p>
</my-com-1>

封装组件时,可以为预留的插槽提供后备内容(默认内容)。如果组件的使用者没有为插槽提供任何内容,则后备内容会生效。示例代码如下:

<template>
  <p>这是MyCom1组件的第1个p标签</p>
  <slot>这是后备内容</slot>
  <p>这是MyCom1组件最后一个p标签</p>
</template>

具名插槽

如果在封装组件时需要预留多个插槽节点,则需要为每个插槽指定具体的 name 名称。这种带有具体名称的插槽叫做“具名插槽”。示例代码如下:

<div class="container">
  <header>
    <!--我们希望把页头放这里-->
    <slot name="header"></slot>
  </header>
  <main>
    <!--我们希望把主要内容放这里-->
    <slot></slot>
  </main>
  <footer>
    <!--我们希望把页脚放这里-->
    <slot name="footer"></slot>
  </footer>
</div>

注意:没有指定 name 名称的插槽, 会有隐含的名称叫做 “default”。

在向具名插槽提供内容的时候,我们可以在一个元素上使用 v-slot 指令,并以 v-slot 的参数的形式提供其名称。示例代码如下:

<my-com-2>
  <template v-slot:header>   
<h1>滕王阁序</h1>
  </template>
  
<template v-slot:default>
    <p>豫章故郡,洪都新府。</p>
    <p>星分翼,地按街庐。</p>
    <p>襟三江而带五潮,控蛮荆而引瓯越。</p>
  </template>
  
<template v-slot:footer>
    <p>落款:王勃</p>
  </template>
</my-com-2>

作用域插槽

在封装组件的过程中,可以为预留的插槽绑定 props 数据,这种带有 props 数据的叫做“作用域插槽”。示例代码如下:

<tbody>
  <!下面的slot是一个作用域插槽-->
  <slot v-for="item in list":user="item"></slot>
</tbody>

可以使用 v-slot: 的形式,接收作用域插槽对外提供的数据。示例代码如下:

<my-com-3>
 <!--1.接收作用域插槽对外提供的数据-->
 <template v-slot:default="scope">
    <tr>     
      <!--2.使用作用域插槽的数据-->    
      <td>{{scope}}</td>   
    </tr>
 </template>
</my-com-3>

解构插槽 Prop

作用域插槽对外提供的数据对象,可以使用解构赋值简化数据的接收过程。示例代码如下:

<my-com-3>
  <!--v-slot:可以简写成#-->
  <!--作用域插槽对外提供的数据对象,可以通过“解构赋值”简化接收的过程-->
  <template #default="{user}">
    <tr>
      <td>{{user.id}}</td>
      <td>{{user.name}}</td>
      <td>{{user.state}}</td>
    </tr>
  </template>
</my-com-3>
更多推荐

【ES6知识】Iterator迭代器与 class类

文章目录一、Iterator迭代器1.1基础知识概述1.2工作原理1.3Symbol.iterator1.4Generator函数来实现Symbol.iterator接口二、ES6Class类2.1概述2.2ES6中的继承2.3面向对象应用-React一、Iterator迭代器1.1基础知识概述迭代器(Iterator

小节9:Python之numpy

numpy全称为NumericalPython,是很多数据或科学相关Python包的基础。1、numpy数组(NDarrayN维数组)numpy数组是更适合数据分析的列表。numpy的数组和Python的内置列表有相似之处,也有不同之处。相似之处:我们都可以通过索引去获得某个元素,可以通过切片获得某个范围的多个元素,也

Excel中的宏、VBA

一、宏是什么?EXCELMACRO是一种记录和播放工具,它仅记录您的Excel步骤,并且宏将根据需要播放任意多次。VBA宏可自动执行重复任务,从而节省了时间。这是一段可在Excel环境中运行的编程代码,但您无需成为编码器即可对宏进行编程。但是,您需要VBA的基础知识才能在宏中进行高级修改。作为人类,我们是习惯的产物。我

C/C++计算分数的浮点数值 2019年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录C/C++计算分数的浮点数值一、题目要求1、编程实现2、输入输出二、解题思路1、案例分析三、程序代码四、程序说明五、运行结果六、考点分析C/C++计算分数的浮点数值2019年12月C/C++编程等级考试一级编程题一、题目要求1、编程实现两个整数a和b分别作为分子和分母,既分数a/b,求它的浮点数值(双精度浮点数,保

blog--1 hugo环境

静态博客框架jekyll、hexo和hugo三者之间的区别与差异博客生成器?全名为静态网站生成器,可在任意拥有主机功能的环境下寄存(托管)可直接配合域名进行全球访问劣势:每次更新网页必须重新生成整个网站编译速度(单位:秒)Jekyll:15.90Hugo:4.90Hexo的数据应当介于二者之间。environmentJ

【数学建模】2023华为杯研究生数学建模F题思路详解

强对流降水临近预报我国地域辽阔,自然条件复杂,因此灾害性天气种类繁多,地区差异大。其中,雷雨大风、冰雹、龙卷、短时强降水等强对流天气是造成经济损失、危害生命安全最严重的一类灾害性天气[1]。以2022年为例,我国强对流天气引发风雹灾害造成的死亡失踪人数和直接经济损失分别占73%和69%。由于强对流天气具有突发性和局地性

智慧公厕预见幸福生活、美好未来

随着城市化的加速发展,公共厕所作为城市基础设施的重要组成部分,对于提升城市形象和居民生活质量起着至关重要的作用。智慧公厕作为智慧城市建设的一部分,正逐渐成为城市管理的新宠儿,能有效助力网络强国、数字中国、智慧社会的建设。本文以智慧公厕源头厂家广州中期科技有限公司,大量精品案例项目实景实图,解读为什么说智慧公厕是预见“幸

windows nginx 本地部署访问静态资源zip文件 配置以及bug解决

步骤配置nginx服务器以提供静态资源zip文件的访问可以按照以下步骤进行:安装并配置Nginx:首先确保已正确安装和配置了Nginx服务器。你可以从Nginx官方网站下载和安装Nginx,然后根据操作系统的要求进行配置。准备静态资源zip文件:将你的静态资源文件打包成一个zip文件,确保zip文件中包含了你想要提供给

操作系统基本概念

目录一、基本概述二、操作系统的特点(一)并发性(实质是微观的串行、宏观的并行)1.对比看:并行性2.单核CPU和多核CPU(二)共享性(三)虚拟性(四)异步性三、操作系统的功能(一)用户与硬件的接口1.命令方式2.系统调用方式3.图形、窗口方式(二)资源管理者1.处理机管理2.存储器管理3.I/O设备管理4.文件管理(

Wi-Blog 项目拆解(一):Maven项目的创建和常用Dependency配置

前言Maven是一个标准化的java项目管理和构建工具,其关键在于pom.xml文件内容。pom.xml中需要指定项目依赖,Maven会自动下载依赖的包并缓存到本地。对SpringBoot项目来说,其依赖关系大同小异,接下来将以Wi-Blog项目对每个包及其作用进行解析。Parent<parent><groupId>o

DC电源模块具有不同的安装方式和安全规范

BOSHIDADC电源模块具有不同的安装方式和安全规范DC电源模块是将低压直流电转换为需要的输出电压的装置。它们广泛应用于各种领域和行业,如通信、医疗、工业、家用电器等。安装DC电源模块应严格按照相关的安全规范进行,以确保其正常运行和安全使用。DC电源模块的安装方式主要有固定式和可调式两种。固定式DC电源模块的输出电压

热文推荐