Vue基础知识:插槽——默认插槽,插槽的后备内容,具名插槽,作用域插槽的认识与使用。(slot,#default,row的认识)

1.插槽的基本认识:

作用:让组件内部的一些结构支持自定义
插槽的分类:

1.默认插槽(组件内只能定制一处结构)

2.具名插槽(组件内可以定制多次结构)

简单而言:就是你希望封装一个组件,这个组件会在多个地方使用,但是每个使用的地方其中的内容部分又是不同的,这个时候你希望自定义,就会运用到插槽。

2.默认插槽的基础语法:

1.组件内需要定制的部分用<slot></slot>占位

2.使用组件时,<组件名></组件名>在标签内容传入替换slot的内容

下面进行代码演示:

使用slot标签占位

 完成的效果图:

此时我们又会面临一个问题,如果我不给自定义内容,就不会有任何内容,这样一片空白实在是不好看。那我们如何加默认值(设置默认内容) 

3.插槽的后备内容:

1.语法:在<slot>标签内,放置内容,作为默认显示内容。

作用:1.组件标签使用时没有传入内容,会slot会显示后备内容。

2.组件标签使用时有传入内容,则slot会被整体替换掉。

下面进行代码演示:

 效果图:

4.插槽—具名插槽(具有名字的插槽)

上面已经讲解了默认插槽,但是它有一个明显的缺点就是只能定制一个地方。而下面所说的具名插槽就可以很好的解决这个问题。

作用:一个组件内有多处结构,需要外部传入标签,进行定制。

1.具名插槽语法:

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

2.template配合v-slot:名字来分发对应的标签。

3.为了方便官方(v-slot:插槽名可以简写成#插槽名

下面进行代码演示:

效果图:

使用#插槽名演示

 5.作用域插槽(是插槽的一个传参语法):

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

使用场景:

1.父传子需要渲染内容时

2.比如我们常使用的删除、编辑等功能都需要当前项的id值,但是id属于组件内部的数据通过作用域插槽传值绑定,进而使用。

作用域插槽的基本使用步骤:

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

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

3.在template中,通过“#插槽名字=“obj””接收(这里的obj可以自定义,就是个对象名而已),默认插槽名为default

下面进行代码演示:

组件:MyTable.vue代码:

<template><table class="my-table"><thead><tr><th>序号</th><th>姓名</th><th>年纪</th><th>操作</th></tr></thead><tbody><tr  v-for="(item,index) in data" :key="item.id"><td>{{index+1}}</td><td>{{item.name}}</td><td>{{item.age}}</td><td><!-- 1.给slot标签已添加属性的方式传值 --><slot :row="item" msg="测试文本"></slot><!-- 2.会将所用的属性添加到一个对象中去 --></td></tr></tbody></table>
</template><script>
export default {props: {data: Array,},
}
</script><style scoped>
.my-table {width: 450px;text-align: center;border: 1px solid #ccc;font-size: 24px;margin: 30px auto;
}
.my-table thead {background-color: #1f74ff;color: #fff;
}
.my-table thead th {font-weight: normal;
}
.my-table thead tr {line-height: 40px;
}
.my-table th,
.my-table td {border-bottom: 1px solid #ccc;border-right: 1px solid #ccc;
}
.my-table td:last-child {border-right: none;
}
.my-table tr:last-child td {border-bottom: none;
}
.my-table button {width: 65px;height: 35px;font-size: 18px;border: 1px solid #ccc;outline: none;border-radius: 3px;cursor: pointer;background-color: #ffffff;margin-left: 5px;
}
</style>

下面是App.vue代码:

 

<template><div><!-- :data="list"相当于父传子 --><MyTable :data="list"><!-- 注意要用<template></template>包裹 --><!-- 由于我们使用的是默认插槽,所以用default --><!-- 3.通过template #插槽名="变量名" 接收 --><template #default="obj"><button @click="del(obj.row.id)">删除</button></template></MyTable><MyTable :data="list2"><template #default="{row}"><!-- 这个对象也支持结构 --><button @click="show(row)">查看</button></template></MyTable></div>
</template><script>
import MyTable from './components/MyTable.vue'
export default {data () {return {list: [{ id: 1, name: '张小花', age: 18 },{ id: 2, name: '孙大明', age: 19 },{ id: 3, name: '刘德忠', age: 17 },],list2: [{ id: 1, name: '赵小云', age: 18 },{ id: 2, name: '刘蓓蓓', age: 19 },{ id: 3, name: '姜肖泰', age: 17 },]}},components: {MyTable},methods:{del(id){this.list=this.list.filter(item=>item.id!==id)},show(row){console.log(row)}}
}
</script>

效果图:

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

五分钟上手IoT小程序

五分钟上手IoT小程序 IoT小程序框架搭建开发环境首先安装NodeJs安装NodeJs验证安装成功 安装cnpm 安装VSCode 开发IDE下载开发IDE安装开发IDE安装框架脚手架 下载模拟器创建工程项目应用编译(打包构建) VSCode 开发IDE安装插件通过开发插件创建工程编译工程debug编译编译太慢问…

SpringBoot 的多配置文件

文章目录 SpringBoot 的多配置文件spring.profiles.active 配置Profile 和 ActiveProfiles 注解 SpringBoot 的多配置文件 spring.profiles.active 配置 默认情况下&#xff0c;当你启动 SpringBoot 项目时&#xff0c;会在日志中看到如下一条 INFO 信息&#xff1a; No act…

双列集合基础知识

package exercise;import java.util.HashMap; import java.util.Map;public class Demo1 {public static void main(String[] args) {Map<String, String> map new HashMap<>();//在添加数据的时候&#xff0c;如果键不存在&#xff0c;那么直接把键值对对象添加到…

引入AI图像识别技术,优化旧物回收系统的分类与识别流程

技术革新的必要性&#xff1a; 在旧物回收领域&#xff0c;随着回收量的不断增长和旧物种类的日益丰富&#xff0c;传统的分类与识别方法已经无法满足现代回收系统的需求。因此&#xff0c;引入AI图像识别技术成为了优化旧物回收流程、提高分类准确性与效率的必然选择。 AI图…

k8s之deployments相关操作

k8s之deployments相关操作 介绍 官网是这样说明如下&#xff1a; 一个 Deployment 为 Pod 和 ReplicaSet 提供声明式的更新能力。 你负责描述 Deployment 中的目标状态&#xff0c;而 Deployment 控制器&#xff08;Controller&#xff09; 以受控速率更改实际状态&#xf…

Web 版 | 开源数据库设计软件 | drawdb

文章目录 简介快速运行方式 1:本地运行方式 2:Docker 构建并运行方式 3:Docker 运行参考🚀 目标: 安装一个 Web 版本的 ER 图设计软件! 👉 GitHub: https://github.com/drawdb-io/drawdb 【11.7k ⭐】 简介 DrawDB:Free, simple, and intuitive database design …

【纯血鸿蒙】——自适应布局如何实现?

界面级一多能力有 2 类&#xff1a; 自适应布局: 略微调整界面结构 响应式布局&#xff1a;比较大的界面调整 本文章先主要讲解自适应布局&#xff0c;响应式布局再后面文章再细讲。话不多说&#xff0c;开始了。 自适应布局 针对常见的开发场景&#xff0c;方舟开发框架提…

Docker入门教程

文章目录 前言一、什么是Docker&#xff1f;二、为什么选择Docker三、Docker的基本组成四、Docker的安装五、Docker的常用命令六、DockerFile什么是DockerFile&#xff1f; 六、Docker volume什么是Docker volume&#xff1f;常用命令 总结 前言 随着云计算和微服务架构的兴起…

wireshark 标记自己想要的数据包

1:点击视图 2:点击视图-着色规则 点击新增一行,双击名称-进行编辑 过滤器规则-编辑自己想要看到的 点击前景-选择凸出显示颜色 点击背景--选择凸出显示颜色 点击确定按钮

苹果手机微信如何直接打印文件

在快节奏的工作和生活中&#xff0c;打印文件的需求无处不在。但你是否曾经遇到过这样的困扰&#xff1a;打印店价格高昂&#xff0c;让你望而却步&#xff1f;今天&#xff0c;我要给大家介绍一款神奇的微信小程序——琢贝云打印&#xff0c;让你的苹果手机微信直接变身移动打…

45-1 waf绕过 - 文件上传绕过WAF方法

环境准备: 43-5 waf绕过 - 安全狗简介及安装-CSDN博客然后安装dvwa靶场:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客打开dvwa靶场,先将靶场的安全等级调低,然后切换到文件上传 一、符号变异 在PHP中,由于其弱类型特性,有时候仅有一…

计算机网络 —— 网络层(子网掩码和子网划分)

计算机网络 —— 网络层&#xff08;子网掩码和子网划分&#xff09; 网络地址转换NAT子网掩码和子网划分举个例子第一步&#xff1a;看类型第二步&#xff1a;从主机号开始比对第三步&#xff1a;去头去尾 我们今天来看子网掩码和子网划分&#xff1a; 网络地址转换NAT 网络…

DDei在线设计器-DDeiCore-布局插件

DDei-Core-布局 如需了解详细的API教程以及参数说明&#xff0c;请参考DDei文档 标准布局 经典的框架结构布局&#xff0c;包含了顶部菜单栏、控件工具项、画布、属性面板和底部工具栏等功能面板&#xff0c;通过插件配置可以调整每个部分的顺序和内容。 效果截图 使用方式…

贝锐蒲公英异地组网:降低建筑工地远程视频监控成本、简化运维

中联建设集团股份有限公司是一家建筑行业的施工单位&#xff0c;专注于建筑施工&#xff0c;业务涉及市政公用工程施工总承包、水利水电工程施工总承包、公路工程施工总承包、城市园林绿化专业承包等&#xff0c;在全国各地开展有多个建筑项目&#xff0c;并且项目时间周期可能…

基于拓扑漏洞分析的网络安全态势感知模型

漏洞态势分析是指通过获取网络系统中的漏洞信息、拓扑信息、攻击信息等&#xff0c;分析网络资产可能遭受的安全威胁以及预测攻击者利用漏洞可能发动的攻击&#xff0c;构建拓扑漏洞图&#xff0c;展示网络中可能存在的薄弱环节&#xff0c;以此来评估网络安全状态。 在网络安…

4.通用编程概念

目录 一、变量与常量1.1 变量1.2 常量 二、遮蔽三、数据类型3.1 标量类型1. 整型2. 浮点型3. 布尔类型4.字符类型 3.2 复合类型1. 元组2. 数组 四、函数五、语句和表达式六、函数的返回值 一、变量与常量 1.1 变量 在Rust中默认的变量是不可变的&#xff0c;如果修改其值会导致…

Python 如何判断一组数呈上升还是下降趋势

在数据分析和统计处理中&#xff0c;我们经常需要判断一组数的趋势是上升还是下降。这在金融市场分析、销售数据监控以及科学研究中都十分常见。本文将介绍如何使用Python来判断一组数的趋势&#xff0c;并结合实际案例进行详细阐述。 一、基本方法 判断一组数的趋势主要有以…

Kafka监控系统efak的安装

下载地址Kafka Eaglehttp://download.kafka-eagle.org/下载地址连接不稳定&#xff0c;可以多次尝试直到成功连接下载 1.解压安装包并重命名 tar -zxvf kafka-eagle-bin-3.0.1.tar.gz 查看到解压后包含一个安装包&#xff0c;再解压 tar -zxvf efak-web-3.0.1-bin.tar.gz 移…

AI-WEB-1 vulnhub靶场

AI-WEB-1 端口扫描 仅开放80端口 访问80端口 啥也没有 目录扫描 查看robots.txt 发现两个新目录 Disallow: /m3diNf0/ Disallow: /se3reTdir777/uploads/全都无权限访问 加入路径后再次扫描目录 发现/m3diNf0/目录下存在info.php&#xff0c;/se3reTdir777/目录下存在ind…