Vue学习:19.插槽实例
来个简单示例练练手吧。
实例:插槽实例
思路
在封装表格组件时,通常使用默认插槽和作用域插槽来处理固定的自定义结构。
代码
根组件(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.插槽实例的更多相关文章
- Vue学习1:实例及生命周期
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue学习之插槽
插槽 插槽(Slot)是Vue提出来的一个概念,正如名字一样,插槽用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性. 个人理解:我感觉插槽就是父组件控制插槽 ...
- Vue学习笔记-插槽基本使用
为了让我们的组件更加具有扩展性,可以使用插槽 <div id="app"> <cpn> <span>返回</span> <in ...
- Vue学习之--------插槽【默认插槽、具名插槽、作用域插槽】(2022/8/30)
插槽Vue.js官网介绍:https://vuejs.org/guide/components/slots.html 会牵涉到template的用法.占位.实际不渲染到页面中 1.默认插槽: 1.1 ...
- Vue学习之路之登录注册实例代码
Vue学习之路之登录注册实例代码:https://www.jb51.net/article/118003.htm vue项目中路由验证和相应拦截的使用:https://blog.csdn.net/wa ...
- Vue学习看这篇就够
Vue -渐进式JavaScript框架 介绍 vue 中文网 vue github Vue.js 是一套构建用户界面(UI)的渐进式JavaScript框架 库和框架的区别 我们所说的前端框架与库的 ...
- Vue 学习文档
Vue 学习文档 vue 起步 引包 启动 new Vue(options) options: el 目的地(可以用类名.标签名等,也可以直接用mod元素) #elementId .elementCl ...
- day 83 Vue学习四之过滤器、钩子函数、路由、全家桶等
Vue学习四之过滤器.钩子函数.路由.全家桶等 本节目录 一 vue过滤器 二 生命周期的钩子函数 三 vue的全家桶 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 Vue的过滤 ...
- day 82 Vue学习三之vue组件
Vue学习三之vue组件 本节目录 一 什么是组件 二 v-model双向数据绑定 三 组件基础 四 父子组件传值 五 平行组件传值 六 xxx 七 xxx 八 xxx 一 什么是组件 首先给 ...
- vue学习06 v-show指令
目录 vue学习06 v-show指令 v-show指令是:根据真假切换元素的显示状态 原理是修改元素的display,实现显示隐藏 指令后面的内容,最终都会解析为布尔值(true和false) 练习 ...
随机推荐
- HarmonyOS NEXT应用开发之多层嵌套类对象监听
介绍 本示例介绍使用@Observed装饰器和@ObjectLink装饰器来实现多层嵌套类对象属性变化的监听. 效果图预览 使用说明 加载完成后显示商品列表,点击刷新按钮可以刷新商品图片和价格. 实现 ...
- 详解 Flink 容器化环境下的 OOM Killed
简介: 本文将解析 JVM 和 Flink 的内存模型,并总结在工作中遇到和在社区交流中了解到的造成 Flink 内存使用超出容器限制的常见原因.由于 Flink 内存使用与用户代码.部署环境.各种依 ...
- 浅谈分布式一致性:Raft 与 SOFAJRaft
简介: SOFAJRaft已开源 作者 | 家纯来源 | 阿里技术公众号 一 分布式共识算法 (Consensus Algorithm) 1 如何理解分布式共识? 多个参与者针对某一件事达成完全一致: ...
- ElasticSearch IK 分词器快速上手
简介: ElasticSearch IK 分词器快速上手 一.安装 IK 分词器 1.分配伪终端 我的 ElasticSearch 是使用 Docker 安装的,所以先给容器分配一个伪终端.之后就可 ...
- [FAQ] Win10 键盘输入的数字英文字体变宽, 胖英文, 如何处理
输入法 点击右键,找到设置,点击进入. 开启 "全/半角切换" 快捷键为 "Shift + 空格",随后可以使用这个快捷键进行切换正常. Link:https: ...
- [FAQ] VisualStudio, Source file requires different compiler version (current compiler is 0.6.1+cxxxxxx)
当使用的 Solidity 库文件中 pragma 指定的 版本 与本地编译器的使用版本不一致时,会出现这类提示. 解决方式是菜单栏 View -> Extensions -> Exten ...
- 本周ddl(4.1-4.5)
本周ddl(4.1-4.5) cs61a首先完成2.23之前的任务 cs61a完成3.1之前的学习 cs61a完成3.8任务并且ants完成阶段1 csapp的bomblab 记录南京5个景点及其周边 ...
- 这款 AI 代码辅助插件真不错,还能帮你发现 bug!
大家好,我是树哥. 随着 ChatGPT 风靡全球之后,编程界也迎来了许多代码辅助工具,有非常出名的 Github Copilot 工具.今天,树哥给大家介绍一款免费的代码辅助插件,它无需代理上网,直 ...
- java如何将JSONObject转成实体对象
import com.google.gson.Gson; import org.json.JSONObject; // ... JSONObject json = new JSONObject(&qu ...
- 策略梯度玩 cartpole 游戏,强化学习代替PID算法控制平衡杆
cartpole游戏,车上顶着一个自由摆动的杆子,实现杆子的平衡,杆子每次倒向一端车就开始移动让杆子保持动态直立的状态,策略函数使用一个两层的简单神经网络,输入状态有4个,车位置,车速度,杆角度,杆速 ...