来个简单示例练练手吧。

实例:插槽实例

思路

在封装表格组件时,通常使用默认插槽和作用域插槽来处理固定的自定义结构。

代码

根组件(APP.vue)
<template>
<div>
<MyTable :data="list1">
<!-- 使用插槽 -->
<!-- 3.通过template #插槽名=‘变量名’接收数据 -->
<template #default="obj">
<button @click="del(obj.row.id)">删除</button>
</template>
</MyTable> <MyTable :data="list2">
<!-- v-slot: 等价于 # -->
<template v-slot:default="{ row }">
<button @click="show(row)">查看</button>
</template>
</MyTable>
</div>
</template> <script>
import MyTable from './components/MyTable.vue'
export default {
data(){
return{
list1:[
{id:1, name:'赵天明', age:25},
{id:2, name:'李翔飞', age:22},
{id:3, name:'吴国基', age:24},
],
list2:[
{id:1, name:'赵天明', age:25},
{id:2, name:'李翔飞', age:22},
{id:3, name:'吴国基', age:24},
]
}
},
methods:{
del(id){
// console.log(id)
this.list1 = this.list1.filter(item => item.id !== id)
},
show(row){
// console.log(row)
// 使用模版字符${}需要反引号-``(波浪线那个)
alert(`姓名: ${row.name}; 年龄: ${row.age}`)
}
},
components:{
MyTable
}
}
</script> <style> </style>
子组件
<template>
<div>
<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 :row="item" msg="测试文本"></slot>
<!-- 2.将所有属性添加到一个对象 -->
<!-- {
row:{id:2, name:'李翔飞', age:24},
msg:'测试文本'
} -->
</td>
</tr>
</tbody>
</table>
</div>
</template> <script>
export default {
props:{
data:Array
}
}
</script> <style scoped>
table{
margin-top: 20px;
border-collapse: collapse;
text-align: center;
}
th,td{
width: 80px;
height: 50px;
line-height: 50px;
border: 2px solid rgb(163, 161, 161);
}
th{
background-color: blue;
color: #fff;
}
</style>

效果图

Vue学习:19.插槽实例的更多相关文章

  1. Vue学习1:实例及生命周期

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. vue学习之插槽

    插槽 插槽(Slot)是Vue提出来的一个概念,正如名字一样,插槽用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性. 个人理解:我感觉插槽就是父组件控制插槽 ...

  3. Vue学习笔记-插槽基本使用

    为了让我们的组件更加具有扩展性,可以使用插槽 <div id="app"> <cpn> <span>返回</span> <in ...

  4. Vue学习之--------插槽【默认插槽、具名插槽、作用域插槽】(2022/8/30)

    插槽Vue.js官网介绍:https://vuejs.org/guide/components/slots.html 会牵涉到template的用法.占位.实际不渲染到页面中 1.默认插槽: 1.1 ...

  5. Vue学习之路之登录注册实例代码

    Vue学习之路之登录注册实例代码:https://www.jb51.net/article/118003.htm vue项目中路由验证和相应拦截的使用:https://blog.csdn.net/wa ...

  6. Vue学习看这篇就够

    Vue -渐进式JavaScript框架 介绍 vue 中文网 vue github Vue.js 是一套构建用户界面(UI)的渐进式JavaScript框架 库和框架的区别 我们所说的前端框架与库的 ...

  7. Vue 学习文档

    Vue 学习文档 vue 起步 引包 启动 new Vue(options) options: el 目的地(可以用类名.标签名等,也可以直接用mod元素) #elementId .elementCl ...

  8. day 83 Vue学习四之过滤器、钩子函数、路由、全家桶等

    Vue学习四之过滤器.钩子函数.路由.全家桶等   本节目录 一 vue过滤器 二 生命周期的钩子函数 三 vue的全家桶 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 Vue的过滤 ...

  9. day 82 Vue学习三之vue组件

      Vue学习三之vue组件   本节目录 一 什么是组件 二 v-model双向数据绑定 三 组件基础 四 父子组件传值 五 平行组件传值 六 xxx 七 xxx 八 xxx 一 什么是组件 首先给 ...

  10. vue学习06 v-show指令

    目录 vue学习06 v-show指令 v-show指令是:根据真假切换元素的显示状态 原理是修改元素的display,实现显示隐藏 指令后面的内容,最终都会解析为布尔值(true和false) 练习 ...

随机推荐

  1. 重磅发布 | Serverless 应用中心:Serverless 应用全生命周期管理平台

    ​简介:Serverless 应用中心,是阿里云 Serverless 应用全生命周期管理平台.通过 Serverless 应用中心,用户在部署应用之前无需进行额外的克隆.构建.打包和发布操作,即可快 ...

  2. 【CDS技术揭秘系列 总篇】阿里云的云定义存储来了

    ​简介: 全新发布的云定义存储 CDS 和传统的存储阵列.分布式存储.软件定义存储的区别在哪里?阿里云存储团队如何看待将来存储的发展趋势?本文邀请了 CDS 研发团队的核心技术负责人为大家揭开围绕着阿 ...

  3. 大模型 RAG 是什么

    大模型 RAG(Retrieval-Augmented Generation)是一种结合了检索(Retrieval)与生成(Generation)能力的先进人工智能技术,主要用于增强大型语言模型(LL ...

  4. [ERROR] listen tcp :80: bind: permission denied

    出现这类提示的时候,表明当前用户没有权限进行 bind 操作. 在某些 Linux 云服务器提供商的运行环境中会出现. 解决方式:使用 sudo 切换为 root,然后在执行原操作. Refer:li ...

  5. WPF 已知问题 在 ObservableCollection 的 CollectionChanged 修改集合内容将让 UI 显示错误

    本文记录一个 WPF 已知问题,在 ObservableCollection 的 CollectionChanged 事件里面,绕过 ObservableCollection 的异常判断逻辑,强行修改 ...

  6. WPF 由于系统颜色配置 Mscms 组件损坏启动失败

    本文记录 WPF 应用程序,因为系统的颜色配置 Mscms.dll 组件损坏导致应用加载图片失败,从而启动失败的原因和解决方法 在 WPF 应用加载图片时,将会调用到系统的 Mscms.dll 组件. ...

  7. k8s七层代理Ingress-nginx-controller

    一.Ingress与Ingress Controller概述 1.1 回顾service四层代理 在 k8s 中为什么要做负载均衡? Pod 漂移问题,可以理解成 Pod IP 是变化的 Kubern ...

  8. QT使用外部库

    一.简述 当QT使用第三方库时,编译会报错,哪怕是使用linux下的软件库时都有可能报错,所以在使用的时候需要添加一下外部库的路径,这里我以mosquitto的库函数为例,主要的导入方式有两种. 二. ...

  9. docker-compose部署Elasticsearch7.14.1+kabana7.14.1+elasticsearch-head并设置账号密码

    学习资料 https://www.bilibili.com/video/BV1eY411w7Lx/ https://www.bilibili.com/video/BV1SQ4y1m7Ds?p=13 仓 ...

  10. github、gitee冲突配置ssh key

    背景 当有多个git账号时,比如: a. 两个gitee,一个账号是用于公司内部的工作开发,一个账号是自己学习的个人账号: b. 一个github,用于自己进行一些开发活动: 操作: 生成不同的key ...