Vue3和Vue2的slot-scope插槽用法

news2024/10/10 10:31:31

目录

🧨🧨🧨第一种插槽(匿名插槽)

🧨🧨🧨第二种插槽(具名插槽)以及插槽简写

具名插槽的使用

 🧨🧨🧨第三种插槽(作用域插槽)

 🧨🧨🧨第四种插槽-写入插槽

 🧨🧨🧨写入插槽与具名插槽的区别?


  Vue2slot-scope插槽用法

//vue2.x的写法
<el-table-column label="测试" align="center" prop="ce">
    <template slot-scope="scope"> //2.x的写法
        <span>{{scope.row.ce}}</span>
    </template> 
</el-table-column>

 Vue3slot-scope插槽用法

<el-table-column label="测试" align="center" prop="ce">
    <template #default="{row,$index}"> //3.x的新写法 -- #default="scope" $index
        <span>{{row.ce}}</span>
    </template> 
</el-table-column>

看完觉得没了?恭喜你没走开,下面的更精彩,分享Vue3里面v-solt插槽的四种用法: 

🧨🧨🧨第一种插槽(匿名插槽)

现在我们封装一个组件,在组件中可以自定义内容。
这个时候我们就可以使用插槽了。
插槽可以将父页面中的内容展示在子组件中指定的位置。

父页面

//父页面
<template>
    <div>
        <cha-cao>
            <template v-slot> 
                匿名插槽添加的数据 
            </template>
        </cha-cao>
    </div>
</template>

<script setup>
import ChaCao from "../components/ChaCao.vue"
</script>

 

//子组件
<template>
    <div>
        <h2>我是组件中标题</h2>
        <!-- 匿名插槽添加的数据 将会被展示在这里  -->
        <slot></slot> 
    </div>
</template>
<!-- 由于组件中只有一个插槽,我们可以不携带参数 -->

说明:

子当组件渲染的时候, 将会被替换为“匿名插槽添加的数据 ”。
插槽还可以包含任何模板代码,包括 HTML,或者其他组件。 

🧨🧨🧨第二种插槽(具名插槽)以及插槽简写

很多的时候,我们可能在组件的不同位置展示不同的内容。
这个时候我们就需要使用具名插槽。
跟 v-on 和 v-bind 一样,v-slot 也有缩写。
(v-slot:) 替换为字符 #
例如 v-slot:header 可以被重写为 #header:

具名插槽的使用

<template>
    <div>
        <cha-cao>
            <template v-slot:header>
                <h2>标题是学习vue3</h2>
            </template>

            <template v-slot:cont>
                <h3>正文是好好学习,天天向上</h3>
            </template>
        </cha-cao>
    </div>
</template>
<script setup>
import ChaCao from "../components/ChaCao.vue"
</script>

子组件 

<template>
    <div>
        <h2>我是组件中标题</h2>
        <slot name="header"></slot>
    </div>
    <p>========================</p>
    <div>
        <h2>我是正文</h2>
        <slot name="cont"></slot>
    </div>
</template>

 

 🧨🧨🧨第三种插槽(作用域插槽)

有时让插槽内容能够访问子组件中才有的数据是很有用的。
当一个组件被用来渲染一个项目数组时,这是一个常见的情况,
我们希望能够自定义每个项目的渲染方式。

作用域插槽的使用

父组件.vue
<template>
    <div>
        <cha-cao :listArr="arr">
             <template v-slot:header="slotProps"> 
                 <h1>下面这个电视剧是自定义的哈</h1>
                 <h1>这就是作用域插槽哈</h1>
                 <h2 clas>电视剧名称:{{ slotProps.row.name }} 人物:{{slotProps.row.person }} 序号--{{ slotProps.index }} </h2>
            </template> 
        </cha-cao>
    </div>
</template>

<script setup>
import ChaCao from "../components/ChaCao.vue"
let arr=[
    {name:'且试天下',person:'丰兰息'},
    {name:'请叫我总监',person:'小橘子'},
    {name:'你是我的荣耀',person:'路人甲',slotFlag:true},
]
</script>
//子组件
<template>
   <ul>
        <li v-for="( item, index ) in listArr" :key="index">
            <template v-if="!item.slotFlag"> 
                <h2>电视剧名称:{{ item.name }} 人物:{{item.person }} 序号:{{ index }} </h2>
            </template>
            <template v-else>
                <slot :row="item" name="header" :index="index"></slot>
            </template>
        </li>
    </ul>
</template>

<script setup>
import {defineProps} from 'vue'
defineProps({
    listArr:{
        type:Array,
        default:()=>{
            return []
        }
    },
})
</script>

 效果:

 

 🧨🧨🧨第四种插槽-写入插槽

//父页面
<template>
  <div class="main">
    {{ name }}==
    <cha-cao>
      <template #[name]>
        <div>我在哪里</div>
      </template>
    </cha-cao>
  </div>
</template>

<script setup lang="ts">
import { ref,  } from 'vue'
const name = ref('header')
</script>
//子组件
<template>
  <div>
    <div class="header">
      <slot name="header">我是头部</slot>
    </div>

    <div class="main">
      <slot name="main">我是主体</slot>
    </div>
  </div>
</template>

 

 

 🧨🧨🧨写入插槽与具名插槽的区别?

 最大的区别是name是动态的对于写入插槽来讲
具名插槽:具名插槽的name是固定值(静态值)

最后:逃不出去的浪浪山,才是每个打工人心底最大的恐惧

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用HTTP代理后,网速反而变慢是什么原因?

如今越来越多的人利用HTTP代理开展业务&#xff0c;但在实际使用时&#xff0c;经常会有用户发现使用了HTTP代理后&#xff0c;网速非但没有变快&#xff0c;反而还更慢了。我们今天就来说说&#xff0c;这是什么原因造成的&#xff0c;从根本入手对于我们能更有利的解决问题。…

2.Spring IOC

目录 一.如何进行注册 二、如何进行注入 三、扫描注解的原理 反射文件操作 四、什么是IOC/DI&#xff1f; 五、演示使用Spring开发的案例&#xff1a;用户管理|登陆、注册 五、常见错误总结 1、注解使用Repository 2、UserController的构造方法注入&#xff1a; 3、…

【FreeRTOS】第一章:介绍

FreeRTOS是什么&#xff1f; Free和RTOS,Free就是免费的、自由的意思&#xff0c;RTOS 全称是 Real Time Operating System。中文名就是实时操作系统。可以看出FreeROTS 就是一个免费的 RTOS 类系统。这里要注意&#xff0c;RTOS 不是指某一个确定的系统&#xff0c;而是指一类…

联想电脑安装ubuntu18.04双系统超详细教程(23年最新教程,99%成功率)

文章目录前言电脑配置制作系统盘安装ubuntu系统更新显卡驱动安装wifi驱动完成前言 ubtuntu的长期支持版本现在应该已经出道21.04版本了&#xff0c;如果你对于版本没有要求的话&#xff0c;建议直接安装最新版ubuntu&#xff0c;因为新版的系统驱动都会进行更新&#xff0c;也…

自学 Java 怎么入门?

玩Java多年的老司机带你上车全面系统学习Java&#xff0c;并且还能教你如何学习才能在今年拿到一份不错的offer。 说到系统全面&#xff0c;就是以目前绝大部分公司招聘要求的知识内容为基准&#xff0c;毕竟我们学习Java都是为了高薪工作&#xff0c;《史记》中说”天下熙熙皆…

2.【SpringBoot源码】SpringBoot核心启动流程

目录 一、简介 二、创建SpringApplication对象 1)、推导出当前启动的项目的类型 2)、设置Initializer初始化器 3)、初始化Listener监听器 4)、反推出main方法所在的Class对象 三、运行SpringApplication#run(java.lang.String...)方法 1)、获取运行监听器 2)、发布…

unity使用对象池实现冲锋留下的残影效果

目录 效果展示 实现思路 残影代码 对象池代码 控制冲刺产生残影 CD冷却图标 效果展示 实现思路 对象池&#xff0c;有想要用的物体时可以从池子里取&#xff0c;用完再放回去。 因为在生成残影再销毁&#xff0c;这个过程中创建和销毁都需要耗费大量资源&#xff0c;因此…

shell 条件测试详解

目录 shell条件测试 一&#xff0c;条件测试的基本语法 1&#xff0c;test 2&#xff0c;[ ] 3&#xff0c;[[ ]] 二&#xff0c;文件测试表达式 1&#xff0c;判断目录是否存在&#xff1a; 2&#xff0c;判断文件file1是否有写的权限&#xff0c;结果为有 3&#xf…

重学MySQL基础(一)

文章目录重学MySQL基础&#xff08;一&#xff09;MySQL 连接管理MySQL字符编码InnoDB 记录存储结构InnoDB 表的主键生成策略&#xff1a;InnoDB 数据页结构页目录页的效验和索引事务报错记录在MySQL中创建函数时出现这种错误恶补SQL语句SQL中的条件语句SQL中的字符串函数SQL中…

python调用go语言踩坑记录

目录 基本操作 1 在go文件中加注释&#xff0c;设置为导出方法,导出C依赖 2 导出so文件&#xff08;mac或者linux下只需要so&#xff09; 3 进行调用 报错记录 踩坑1 关于结构体 2 cannot use (_Cfunc_CString)("12345") (value of type *_Ctype_char) as ty…

spring中事务失效场景

文章目录spring中事务失效场景一、权限访问问题二、方法用final修饰三、无事务嵌套有事务的方法四、没有被spring管理五、设计的表不支持事务六、没有开启事务七、错误的事务传播八、自己捕获了异常九、手动抛出别的异常十、自定义回滚异常spring中事务失效场景 一、权限访问问…

软件研发管理经验总结 - 事务管理

软件研发管理经验总结 - 事务管理 相关系列文章 软件产品研发管理经验总结-管理细分 软件研发管理经验总结 - 事务管理 目录软件研发管理经验总结 - 事务管理一、概述二、事务管理过程1、制定开发计划2、启动会议3、阅读前一天的日报4、例会/早会5、调整计划6、协调资源7、日报…

LeetCode——2325. 解密消息

一、题目 给你字符串 key 和 message &#xff0c;分别表示一个加密密钥和一段加密消息。解密 message 的步骤如下&#xff1a; 使用 key 中 26 个英文小写字母第一次出现的顺序作为替换表中的字母 顺序 。 将替换表与普通英文字母表对齐&#xff0c;形成对照表。 按照对照表…

vue全家桶(三)前端路由

vue全家桶&#xff08;三&#xff09;前端路由1.路由的概念1.1路由1.2vue Router2.vue-router的基本使用步骤2.1基本使用步骤2.2路由重定向3.vue-router的嵌套路由用法3.1嵌套路由的用法4.vue-router动态路由匹配用法5.vue-router命名路由用法6.vue-router编程式导航用法6.1 页…

06 Sentinel控制台规则配置讲解 (2)

1、实时监控 监控接口的通过的QPS和拒绝的QPS 2、簇点链路 用来显示微服务的所监控的API 3、流控规则 流量控制&#xff08;flow control&#xff09;&#xff0c;其原理是监控应用流量的 QPS 或并发线程数等指标&#xff0c;当达到指定的阈值时对流量进行控制&#xff0c;以…

源于《C陷阱与缺陷》----研究程序死循环问题

本题来源于《C陷阱与缺陷》这本书&#xff0c;从本质上讲解程序死循环的原因&#xff0c;关键在于栈的空间使用方式。研究程序死循环的原因死循环的原因是什么呢&#xff1f;解决方法总结研究程序死循环的原因 题目1&#xff1a; 在VS2019 X86环境下测试&#xff1a; int mai…

Linux服务器怎么设置iptables防火墙?

当今&#xff0c;为避免香港服务器及其端口受到恶意入侵&#xff0c;保障香港服务器的安全&#xff0c;配置Linux服务器防火墙的重要性不言而喻。恒创科技将向您介绍如何在 CentOS、Ubuntu 和 Debian 服务器中安装和配置 iptables防火墙。iptables是一个简单的防火墙&#xff0…

测试工程师必备技能之编写测试用例

1. 必要性 &#x1f449; 指导测试工作&#xff0c;用例通过率是评估质量的基准 &#x1f449; 完善测试人员测试的整体思路&#xff0c;不出现漏测 ❗️ 避免背锅&#xff0c;线上出了问题防止开发甩锅给测试 2. 模板 企业中用例往往是每个人负责不同模块&#xff0c;再根据…

Verilog实现超前进位加法器

在CPU等对性能要求较高的电路中&#xff0c;一般都会采用超前进位加法器&#xff0c;因为超前进位加法器的延时相对来说比较小。下面讲述超前进位加法器的原理&#xff1a; 我们知道&#xff0c;一个三输入&#xff0c;二输出的全加器&#xff0c;其逻辑关系为 SA⊕B⊕CinSA\op…

每日一练9——另类加法走方格的方案数

文章目录另类加法思路&#xff1a;代码&#xff1a;走方格的方案数思路&#xff1a;代码&#xff1a;另类加法 题目链接 思路&#xff1a; 本题可以通过位运算实现&#xff0c;具体实现如下&#xff1a; 两个数求和&#xff0c;其实就是 求和后当前位的数据两个数求和的进位…