el-table的那些特殊用法

聊聊目前比较流行的Vue前端的架构。目前因为Vue良好编码规范,学习上手周期短等优势。被我们很多大前端组所追捧,其中有的项目采用Element组件库占比达90%。主要用到el-input,el-select,el-datePicker,el-form,el-table,el-pagination等等组件。这里来聊聊el-table的那些特殊用法。

1.el-table filters 筛选问题

el-table 常用表格,配合filters 可以对表格数据筛选。但是日常开发你觉得这样就能满足产品大大的需求吗,too young。有时候分野筛选是对数据库所有数据筛选,不是筛选表格当前页。就涉及到选择筛选项,时时请求接口刷新表格页。所以这里利用filter-change方法,对多个下拉选择项进行区分,筛选不通数据。

2.el-table selection toggleRowSelection选中问题

el-table 的selection选择模式,selection-change很常用的选中回调。那如果有选中状态初始化呢?toggleRowSelection利用$refs引用组件实例选中改行,比document.getElementById方法,会减少获取dom节点的消耗。但是这依然不足矣适用。有人说在create()钩子函数进行DOM操作无异于徒劳,DOM还没有渲染,那么在mounted()钩子函数中,进行DOM操作都不会有问题。但是这里就有问题。选中状态接口mounted中执行后,并没有勾选状态。因为Vue的异步DOM更新会开启队列,缓存同一事件循环中所发生的数据变更。所以用到$nextTick监听DOM更新同步刷新状态。注:ref用来給元素或者自组件组册引用信息,注册时机是渲染结束创建,并且$ref非响应式。所以不要在模版和计算属性中使用

3.el-table el-table-column 多行,多列,列为多级表头

el-table的动态行el-table-column固定列是我们常用方式。那如果是动态行加动态列的多级表头如何做。动态行动态列一级表头一个list行包含list列数据v-for解决,但是动态行动态多级表头列v-for过程中list行里面的list列的属性就不可读。无外乎里面列的list的v-for循环不可读,所以采取抽取里面列的估计列title做v-for循环,成功实现行多级表头动态列报表。

大家有其他的骚操作也可以一起交流下

`el-table`是Element UI框架中的表格组件,用于创建数据展示的表格界面。如果你想要给`el-table`只加上横边框,可以通过设置单元格的内边距来实现,因为Element UI的表格默认边框是单元格之间的横竖都有的。但是需要注意的是,Element UI不提供直接设置只显示横线的属性,我们可以通过自定义CSS样式来达到这个目的。 下面是一个基本的方法,通过修改`el-table`的样式来只显示横线边框: 1. 使用`:deep()`伪类来穿透组件样式的作用域限制,确保样式能够应用到内部的元素上。 2. 设置`th`和`td`的`border-bottom`属性来显示横线。 3. 设置`th`和`td`的`border-left`和`border-right`属性来隐藏竖线(如果需要的话)。 ```css /* 在你的全局样式文件或者组件内部的样式中添加以下CSS */ /deep/ .el-table .el-table__body-wrapper table tr:not(:last-child) > td, /deep/ .el-table .el-table__body-wrapper table tr:not(:last-child) > th { border-bottom: 1px solid #ebeef5; } /deep/ .el-table .el-table__body-wrapper table tr > td:not(:last-child), /deep/ .el-table .el-table__body-wrapper table tr > th:not(:last-child) { border-right: none; } ``` 如果你不希望对所有的`el-table`实例都应用这样的样式,可以给需要特殊样式的`el-table`添加一个特定的类名,并针对这个类名编写样式。 ```css .custom-table-style /deep/ .el-table__body-wrapper table tr:not(:last-child) > td, .custom-table-style /deep/ .el-table__body-wrapper table tr:not(:last-child) > th { border-bottom: 1px solid #ebeef5; } ``` ```html <el-table class="custom-table-style" ...> <!-- 表格内容 --> </el-table> ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Asia_ZhangQQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值