vue插槽的基本使用

1.默认插槽

在Vue.js中,可以通过使用默认插槽来在组件中插入内容。默认插槽允许你在父组件中传递任意内容给子组件,并在子组件中使用这些内容。如果在子组件中的slot中写内容,则为默认内容,父组件未插入值的情况下显示,插入则被覆盖
在这里插入图片描述

父组件

<template>
 <div class="container">
  <Tip>你好</Tip>//这里插入的是文本,还可以插入标签,组件
 </div>
</template>
<script>
import Tip from '@/views/components/son.vue'
export default {
  components: { Tip },
}
</script>
<style lang='scss'  scoped>
.container{
  width: 100%;
  height: 100%;
  border: 1px solid red;
  display: flex;
  justify-content: space-around;
  align-items: center;
}
</style>

子组件

<template>
 <div>
    <div class="tip">
      <div class="up">
        //slot标签占位,父组件在子组件标签里插入的内容在这里显示
        <slot></slot>
      </div>
      <div class="down"></div>
    </div>
 </div>
</template>
<script>
export default {
  data () {
    return {

    }
  },
}
</script>
<style lang='scss'  scoped>
.tip{
  width: 200px;
  height: 100px;
  border: 1px solid pink;
  border-radius: 5px;

  .up{
    width: 100%;
    height: 50px;
    font-size: 16px;
    line-height: 50px;
    border-bottom:1px solid black ;
  }

  .down{
    width: 100%;
    height: 50px;
  }
}
</style>

2.具名插槽

在这里插入图片描述

在父组件页面的子组件标签中插入值,需要用template标签,v-slot:""指定这段内容是插入哪个插槽的

父组件

<template>
  <div class="container">
    <Tip>
      你好
      <template v-slot:title>
        <span style="color: red;">你好</span>
      </template>

    </Tip>
  </div>
</template>
<script>
import Tip from '@/views/components/chaCaoTest.vue'
export default {
  name: 'chaCao',
  components: { Tip },
  data () {
    return {

    }
  },
}
</script>
<style lang='scss' scoped>
//样式同上
</style>

子组件

<template>
 <div>
    <div class="tip">
      <div class="up">
        <slot ></slot>
        <slot name="title"></slot>
      </div>
      <div class="down"></div>
    </div>
 </div>
</template>
<script>
export default {
  data () {
    return {

    }
  },
}
</script>
<style lang='scss'  scoped>
//样式同上
}
</style>

3.作用域插槽

作用域插槽可以从子组件传递数据到父组件,写一个表格的例子
通过子组件的slot标签将子页面的数据传递到父组件
在这里插入图片描述
在这里插入图片描述

父组件

<template>
  <div class="container">
    //现将表格数据传给子组件
    <Tip :grades="grades">
      //这里自己设定一个变量来接受子组件插槽传递的数据,不一定是obj
      <template v-slot:default="obj">
        <!-- 简写 #default="obj" -->
        <button @click="del(obj)">删除</button>
      </template>
    </Tip>
  </div>
</template>
<script>
import Tip from '@/views/components/chaCaoTest.vue'
export default {
  name: 'chaCao',
  components: { Tip },
  data () {
    return {
      grades: [
        { id: 1, project1: 59, project2: 60, project3: 61 },
        { id: 2, project1: 59, project2: 60, project3: 61 },
        { id: 3, project1: 59, project2: 60, project3: 61 }
      ]
    }
  },
  methods: {
    del (e) {
      console.log(e, 666)
    }
  }
}
</script>
<style lang='scss' scoped>
.container {
  width: 100%;
  height: 100%;
  border: 1px solid red;
  display: flex;
  justify-content: space-around;
  align-items: center;
}
</style>

子组件

<template>
 <div class="container1">
    <table>
      <thead>
        <tr>
          <th>语文</th>
          <th>数学</th>
          <th>外语</th>
          <th>操作</th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="item in grades" :key="item.id">
          <td>{{ item.project1 }}</td>
          <td>{{ item.project2 }}</td>
          <td>{{ item.project3 }}</td>
          <td>
          	//将数据传递给父组件
            <slot :item="item"></slot>
          </td>
        </tr>
      </tbody>
    </table>
 </div>
</template>
<script>
export default {
  props: ['grades'],
  data () {
    return {

    }
  },
}
</script>
<style lang='scss'  scoped>
.container1{
  width: 50%;
  height: 50%;
}

table {
      border-collapse: collapse;
      width: 100%;
    }

    th, td {
      border: 1px solid #ddd; /* 设置细线边框的颜色和宽度 */
      padding: 8px;
      text-align: left;
    }

    th {
      background-color: #f2f2f2; /* 设置表头的背景颜色 */
    }
</style>

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

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

相关文章

短视频矩阵系统源头3年技术开发

短视频矩阵系统功能主要包括&#xff1a; &#x1f608;&#x1f608;&#x1f33a;&#x1f33a; 1. 短视频制作&#xff1a;系统支持短视频拍摄、剪辑、特效、标题、音乐等操作&#xff0c;用户可以轻松制作出精美的短视频。 2. 短视频发布&#xff1a;通过系统&#xff0c…

HTML表格标签

文章目录 1. 基本结构2. 跨行跨列3. 跨行跨列改进3.1. 演示效果3.2. 代码实现 4. 补充 1. 基本结构 表格由表格标题、表格头部、表格主体、表格脚注&#xff0c;四部分组成 。 表格涉及到的标签 标签含义table表格caption表格标题thead表格头部tbody表格主体tfoot表格注脚tr每…

【Java基础概述-10】IO流、字节流、字符流、缓冲流、转换流、序列化、打印流、Properties属性集对象

目录 1、IO流概述 2、字节流的使用 2.1、FileInputStream字节输入流 2.1.1、读取方式一 2.1.2、读取方式二 2.1.3、字节流读取数据如何避免中文乱码 2.2、OutputStream字节输出流 2.3、案例&#xff1a;复制粘贴小案例 3、字符流 3.1、FileReader字符输入流 3.1.1、读…

ctfshow web入门 文件上传 web156-160

1.web156 前端还是要修改 文件内容中不能有php,[],图片必须是png格式 利用的还是.user.ini,写入auto_prepend_file2.png&#xff0c;在上传2.png &#xff0c;写入<?php system("cat /var/www/html/flag.???")?>&#xff0c;访问链接就可得到flag (http…

云端巨擘:大数据与云计算的时代航向

文章目录 大数据时代大数据特点(4v1C大数据与云计算的关系 云计算云计算定义云计算特点云计算分类&#xff08;服务类型&#xff09;云计算实现机制云计算体系结构云计算的管理中间件层 大数据时代 大数据定义&#xff1a;海量数据或巨量数据&#xff0c;其规模巨大到无法通过…

【深度学习】深度估计,Depth Anything Unleashing the Power of Large-Scale Unlabeled Data

论文标题&#xff1a;Depth Anything Unleashing the Power of Large-Scale Unlabeled Data 论文地址&#xff1a;https://arxiv.org/pdf/2401.10891.pdf 项目主页&#xff1a;https://depth-anything.github.io/ 演示地址&#xff1a;https://huggingface.co/spaces/LiheYoung…

投后管理系统的开发流程

投后管理系统的开发流程中&#xff0c;需求分析阶段至关重要&#xff0c;要确保充分理解用户需求和业务流程&#xff0c;以便设计和开发出符合实际需求的投后管理系统。同时&#xff0c;持续的测试、优化和支持也是保证系统质量和用户满意度的重要环节。北京木奇移动技术有限公…

2024年腾讯云学生用户便宜云服务器购买攻略

2024年腾讯云学生服务器优惠活动「云校园」&#xff0c;学生服务器优惠价格&#xff1a;轻量应用服务器2核2G学生价30元3个月、58元6个月、112元一年&#xff0c;轻量应用服务器4核8G配置191.1元3个月、352.8元6个月、646.8元一年&#xff0c;CVM云服务器2核4G配置842.4元一年&…

【个人博客项目】使用Jenkins简单的搭建一下

目录标题 前言安装JDK1.8、Git、Maven安装Tomcat修改tomcat8相关配置 安装Jenkins 前言 为了学习一下工作中常用到的jenkins&#xff0c;于是挑了个最简单的模式动手操作了一遍。 环境->阿里云服务器:CentOS7.0 https://promotion.aliyun.com/ntms/yunparter/invite.html?…

AI-线性回归模型

线性回归应用场景 房价预测&#xff0c;通过分析房地产市场的历史数据&#xff0c;如房屋大小、位置、建造年份等因素&#xff0c;线性回归可以帮助预测未来房价的走势。 销售额预测&#xff0c;企业可以利用线性回归模型来预测产品的销售额&#xff0c;这通常涉及到产品价格、…

爆料!游戏圈内幕揭秘(下)

游戏产业规模日益扩大&#xff0c;影响力不断提高&#xff0c;已成为全球最活跃和潜力巨大的经济板块之一。作为一项新兴产业&#xff0c;游戏开发行业前景广阔&#xff0c;机遇与挑战并存。对即将出社会的同学来说&#xff0c;要想在这个竞争激烈又日新月异的行业中找到属于自…

C++第四弹---类与对象(一)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 类与对象 1、面向过程和面向对象初步认识 2、类的引入 3、类的定义 4、类的访问限定符及封装 4.1、访问限定符 4.2、封装 5、类的作用域 6、类的…

WebP格式图像:起源、优势、兼容性及在线压缩方法

关于作者&#xff1a; 还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0…

第四百回 channel

文章目录 1. 知识回顾2. 示例代码3. 经验总结 我们在上一章回中介绍了MethodChannel的使用方法&#xff0c;本章回中将介绍EventChannel的使用方法.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 知识回顾 我们在前面章回中介绍了通道的概念和作用&#xff0c;并且提到了…

数字生活的未来:探索Web3的全新世界

随着科技的飞速发展&#xff0c;我们正迈向一个数字化的未来。而在这个数字化的时代&#xff0c;Web3技术的崛起正引领着我们进入一个全新的世界。本文将深入探讨Web3技术的特点以及它给我们带来的全新体验。 1. 去中心化的特点 Web3的去中心化是其最显著的特点之一&#xff0…

若依Cloud项目配合nacos进行多环境profile的配置

1、前言 最近做的用若依改造的一个项目要把里面的配置挪到nacos的配置中心&#xff0c;之前用过apollo做配置中心&#xff0c;nacos用的很少&#xff0c;而且是自己从头做的那种&#xff0c;而自己想要实现的效果是本地启动和到测试&#xff0c;预发&#xff0c;生产环境启动的…

如何在Linux Archcraft中配置SSH服务并结合内网穿透实现远程连接

文章目录 1. 本地SSH连接测试2. Archcraft安装Cpolar3. 配置 SSH公网地址4. 公网远程SSH连接小结 5. 固定SSH公网地址6. SSH固定地址连接 Archcraft是一个基于Arch Linux的Linux发行版&#xff0c;它使用最简主义的窗口管理器而不是功能齐全的桌面环境来提供图形化用户界面。 C…

标准砂轮加工麻花钻或者铣刀螺旋槽齿形

螺旋槽与砂轮的空间位置运动关系可用下图表示&#xff0c;螺旋槽的形成靠工件绕轴线的旋转以及砂轮沿轴线的移动来完成的&#xff0c;以下坐标系可以清楚的描述二者之间的运动关系&#xff1a; 砂轮的形状如下&#xff1a; 经过坐标变换和下面这个重要的公式来计算工件的齿形…

JAVA初阶数据结构(链表)练习(这些可以作为java包中的方法)

这里的每一个题大家都要仔细完成&#xff0c;这些题目每个我都至少思考了两个小时左右&#xff08;沉重心&#xff0c;慢慢来&#xff09; 1.反向链表的实现&#xff08;对链表进行翻转&#xff09;&#xff08;力扣有&#xff09; &#xff08;1&#xff09;图示 &#xff0…

MADQN:多代理合作强化学习

处理单一任务是强化学习的基础&#xff0c;它的目标是在不确定的环境中采取最佳行动&#xff0c;产生相对于任务的最大长期回报。但是在多代理强化学习中&#xff0c;因为存在多个代理&#xff0c;所以代理之间的关系可以是合作的&#xff0c;也可以是对抗&#xff0c;或者两者…