当前位置: 首页 > news >正文

element表格分页+数据过滤筛选

目录

  • 前言
  • 效果展示
    • 分页效果展示
    • 搜索效果展示
  • 代码分析
    • 分页功能
    • 过滤数据功能
  • 全部代码

前言

在el-element的标签里的tableData数据过多时,会导致表格页面操作卡顿。为解决这一问题,有以下解决方法:

分页加载: 将大量数据进行分页,并且只在用户需要时加载当前页的数据,可以减轻页面的数据负担。可以使用像 Element UI 提供的分页组件来实现分页加载功能。
虚拟滚动: 对于大量数据的列表展示,可以考虑使用虚拟滚动技术,只渲染当前可见区域的数据,而不是直接渲染所有数据。Element UI 的 Table 组件也支持虚拟滚动,可以通过相应的配置开启虚拟滚动功能。可参考虚拟滚动其它博主的文章
数据筛选和搜索: 提供数据筛选和搜索功能,让用户可以根据条件快速定位到需要的数据,减少不必要的数据展示。
服务端优化: 如果数据来源于服务端,可以在服务端对数据进行分页、压缩等处理,以减少前端页面加载的数据量。
组件优化: 检查页面中其他组件的性能表现,确保没有其他组件或代码导致页面性能下降。
前端性能优化: 考虑对前端代码进行性能优化,比如减少不必要的重复渲染、减少对大数据量的循环操作等。

效果展示

分页效果展示

在这里插入图片描述

搜索效果展示

在这里插入图片描述

代码分析

数据结构:

[{"name1": "名称11",//需要搜索的关键字字段name1"name2": "名称21","name3": "名称31","name4": "名称41","ID": 1},......
]

data:

tableData: [], // 原始数据
currentPage: 1, // 当前页码
pageSize: 10, // 每页显示的数量
searchText: ‘’, // 搜索的文本
filteredData: [], // 搜索后的数据

分页功能

首先,在computed中,使用displayData计算属性来根据当前页码和每页数量筛选出要显示的数据。在el-table标签中绑定displayData:<el-table :data="displayData"></el-table>

通过computed属性,我们可以定义根据响应式数据计算的属性,并在模板中使用。Vue会自动追踪依赖关系,当依赖的响应式数据发生变化时,computed属性会重新计算其值。

computed: {// 根据当前页码和每页数量计算显示的数据displayData () {const startIndex = (this.currentPage - 1) * this.pageSize;const endIndex = startIndex + this.pageSize;return this.tableData.slice(startIndex, endIndex);},},

其次,在methods中,handleSizeChange方法用于处理改变每页显示数量的事件,handleCurrentChange方法用于处理改变当前页码的事件。

// 改变每页显示的数量时触发
handleSizeChange(newSize) {this.pageSize = newSize;this.currentPage = 1; // 重置当前页码为第一页
},
// 改变当前页码时触发
handleCurrentChange(newPage) {this.currentPage = newPage;
},

最后,在mounted中,我们假设通过某种方式获取了原始数据,并将其赋值给tableData数组,若是调用接口,则在调用接口将获取的数据赋值给tableData数组即可。这里示例是用的json数据。

data () {return {tableData: jsondata,//方法一:使用示例数据进行演示,将json数据赋值给tableData数组};
},
mounted() {// 方法二:实际情况下可以通过接口请求或其他方式获取数据// 假设tableData是从后端获取的原始数据this.searchFun();
},
methods: {searchFun(){//......调用接口.then((res) => {this.tableData = res.obj;//将数据赋值给tableData}).catch((err) => {console.log("err",err);})},
}

这样,当用户改变每页显示数量或当前页码时,表格会自动根据新的参数重新渲染显示数据,同时Element UI的分页组件也会更新页码和显示的数据数量

过滤数据功能

1、在data中,添加了filteredData用于存储搜索后的数据,searchText用于保存搜索的文本。

searchText: '', // 搜索的文本
filteredData: [], // 搜索后的数据

2、在computed中,修改了displayData计算属性,使用filteredData进行分页显示。

computed: {displayData () {// 根据当前页码和每页数量计算显示的数据const startIndex = (this.currentPage - 1) * this.pageSize;const endIndex = startIndex + this.pageSize;return this.filteredData.slice(startIndex, endIndex);},
},

3、在mounted钩子中,初始化了tableData和filteredData,并将它们设置为示例数据。你可以根据实际情况从后端获取数据。
4、在methods中,添加了searchTextFun 方法来根据搜索文本过滤数据,并重置当前页码为第一页。若是在调用接口方法获取数据后调用searchTextFun即可。这里用的是name1字段,可视情况改变:item.name1.includes(this.searchText)
.filter()方法直达站

mounted () {this.filteredData = this.tableData;this.searchTextFun();
},
methods: {// 根据搜索文本过滤数据searchTextFun () {this.filteredData = this.tableData.filter(item =>item.name1.includes(this.searchText));//过滤数据this.currentPage = 1; // 重置当前页码为第一页},
}

5、在watch中,监听searchText的变化,并在变化时执行搜索操作。

watch: {searchText () {// 监听搜索文本变化,执行搜索操作this.searchTextFun();},}

这样,当用户输入搜索文本并提交时,表格会根据搜索结果显示相应的数据,并自动根据新的参数重新渲染分页组件。

全部代码

<template><div class="textbox-class"><div class="topbox-class"><el-input placeholder="搜索姓名"prefix-icon="el-icon-search"v-model="searchText"class="mleft-class searchinput-class"></el-input></div><div class="mainbox-class"><el-table :data="displayData"stripeborder:header-cell-style="{background:'rgb(113 167 228)',color:'white'}"highlight-current-rowstyle="width: 50%"><el-table-column prop="ID"label="ID"></el-table-column><el-table-column prop="name1"label="姓名1"></el-table-column><el-table-column prop="name2"label="姓名2"></el-table-column><el-table-column prop="name3"label="姓名3"></el-table-column><el-table-column prop="name4"label="姓名4"></el-table-column></el-table></div><div class="botbox-class"><el-pagination @size-change="handleSizeChange"@current-change="handleCurrentChange":current-page="currentPage":page-sizes="[10]":page-size="pageSize"layout="total, sizes, prev, pager, next, jumper":total="tableData.length"></el-pagination></div></div>
</template><script>
import jsondata from './test.json';
export default {data () {return {tableData: jsondata,currentPage: 1, // 当前页码pageSize: 10, // 每页显示的数量searchText: '', // 搜索的文本filteredData: [], // 搜索后的数据};},created () { },computed: {displayData () {// 根据当前页码和每页数量计算显示的数据const startIndex = (this.currentPage - 1) * this.pageSize;const endIndex = startIndex + this.pageSize;return this.filteredData.slice(startIndex, endIndex);},},mounted () {this.filteredData = this.tableData;this.searchTextFun();},methods: {// 改变每页显示的数量时触发handleSizeChange (newSize) {this.pageSize = newSize;this.currentPage = 1; // 重置当前页码为第一页},// 改变当前页码时触发handleCurrentChange (newPage) {this.currentPage = newPage;},// 根据搜索文本过滤数据searchTextFun () {this.filteredData = this.tableData.filter(item =>item.name1.includes(this.searchText));this.currentPage = 1; // 重置当前页码为第一页},},watch: {searchText () {// 监听搜索文本变化,执行搜索操作this.searchTextFun();},}
};
</script><style scoped>
.textbox-class {width: 100%;height: 100%;
}
.topbox-class {height: 5%;display: flex;align-items: center;margin-left: 0.5rem;
}
.mainbox-class {height: 55%;
}
.botbox-class {height: 3%;
}
.searchinput-class {width: 20%;
}
</style> 

相关文章:

element表格分页+数据过滤筛选

目录 前言效果展示分页效果展示搜索效果展示 代码分析分页功能过滤数据功能 全部代码 前言 在el-element的标签里的tableData数据过多时&#xff0c;会导致表格页面操作卡顿。为解决这一问题&#xff0c;有以下解决方法&#xff1a; 分页加载&#xff1a; 将大量数据进行分页&…...

小程序判断是否授权位置信息和手动授权

文章目录 概要微信小程序的&#xff0c;使用的是高德地图 概要 当用户来到页面之后就会弹出是否授权弹框&#xff0c;但是如果第一次关闭之后&#xff0c;下一次再过来的话页面的授权弹框就不出现了&#xff0c;针对于这种情况写了一个方法 微信小程序的&#xff0c;使用的是…...

2023年亚太杯数学建模亚太赛A题思路解析+代码+论文

下文包含&#xff1a;2023年亚太杯数学建模亚太赛A题思路解析代码参考论文等及如何准备数学建模竞赛&#xff08;23号比赛开始后逐步更新&#xff09; C君将会第一时间发布选题建议、所有题目的思路解析、相关代码、参考文献、参考论文等多项资料&#xff0c;帮助大家取得好成…...

【Android】画面卡顿优化列表流畅度六(终篇)

上一篇&#xff1a; 【Android】画面卡顿优化列表流畅度五之下拉刷新上拉加载更多组件RefreshLayout修改 场景回顾&#xff1a; 业务经过一年半左右的运行后&#xff0c;出现了明显的列表卡顿情况&#xff1b;于是开始着手进行列表卡顿优化。目前的情况是&#xff1a; 网络图…...

一文了解:离散型制造业轻量化MES解决方案

离散型制造业的特点 离散型生产行业主要是通过对原材料物理形状的改变、组装&#xff0c;成为产品&#xff0c;使其增值。典型的离散型行业包括&#xff1a;机械、电子、航空、汽车等行业。这些企业既有按订单生产&#xff08;MTO&#xff09;&#xff0c;也有按照库存生产&am…...

《云计算:云端协同,智慧互联》

《云计算&#xff1a;云端协同&#xff0c;智慧互联》 云计算&#xff0c;这个科技领域中的热门词汇&#xff0c;正在逐渐改变我们的生活方式。它像一座座无形的桥梁&#xff0c;将世界各地的设备、数据、应用紧密连接在一起&#xff0c;实现了云端协同&#xff0c;智慧互联的愿…...

Java stream流 常用记录

根据列表中的某个字段进行去重 // 根据roleKey对列表去重return roleList.stream().map(AccountRole::getRoleKey).distinct().map(roleKey -> roleList.stream().filter(role -> role.getRoleKey().equals(roleKey)).findFirst().orElse(null)).filter(Objects::nonNul…...

Spring Security6 用户身份认证

前提 你需要先拜读 [Spring Security 6 官方文档](https://docs.spring.io/spring-security/reference/servlet/authentication/architecture.html#servlet-authentication-authenticationmanager) 你需要弄清楚身份认证&#xff08;Authentication&#xff09;和鉴权&#xff…...

钩子函数-hook

钩子函数-hook hook 的作用 利用钩子函数可以在所有测试用例执行前做一些预置操作&#xff08;如&#xff1a;准被测试数据、测试环境&#xff09; 或者在测试结束后做一些后置操作&#xff08;如&#xff1a;清理测试数据&#xff09; 钩子函数在其它框架中也有&#xff0…...

拉链表-spark版本

采用spark实现的拉链表 拉链表初始化 import org.apache.spark.sql.SparkSession import org.apache.spark.sql.functions.lit/*** 拉链表初始化*/ object table_zip_initial {val lastDay "9999-12-31"def main(args: Array[String]): Unit {var table_base &q…...

【笔记1-2】Qt系列:QkeyEvent 键盘事件 设定快捷键

参考文献 QKeyEvent 类用来描述一个键盘事件。当键盘按键被按下或者被释放时&#xff0c;键盘事件便会被发送给拥有键盘输人焦点的部件。QKeyEvent 的 key() 函数可以获取具体的按键关键字。需要特别说明的是&#xff0c;回车键在这里是 Qt::Key_Return&#xff1b;键盘上的一…...

adb突然获取不到华为/荣耀手机。。。

手机一开始都是好好的&#xff0c;adb获取正常&#xff0c;adb执行命令正常。突然有一天不好使了。。。。。 重启、换usb线都试过。。。。。。 看到hisuite模式和adb冲突这篇帖子&#xff0c;尝试下载华为手机助手去链接&#xff0c;但一直连接不上。 最后我的处理方法是&#…...

layui的layer.confirm获取按钮焦点

因为ayer.confirm的按钮并非采用button&#xff0c;而是a标签&#xff0c;所以获取按钮焦点获取不到&#xff0c;要采用别的方法&#xff0c;下面介绍在ie11中和ie8中不同的写法 在ie11中 layer.confirm(确定取消这个弹窗吗&#xff1f;,{btn: [确定, 取消],success:function…...

【HarmonyOS】鸿蒙应用开发基础认证题目

系列文章目录 【HarmonyOS】鸿蒙应用开发基础认证题目&#xff1b; 文章目录 系列文章目录前言一、判断题二、单选题三、多选题总结 前言 随着鸿蒙系统的不断发展&#xff0c;前不久&#xff0c;华为宣布了重磅消息&#xff0c;HarmonyOS next 开发者版本会在明年&#xff08;…...

Mocha

Mocha介绍 介绍 Cypress 底层依赖于很多优秀的开源测试框架&#xff0c;其中就有 MochaMocha 是一个适用于 Node.js 和浏览器的测试框架&#xff0c;它使得异步测试变得简单 JS 语言带来的问题 JS 是单线程异步执行的&#xff0c;这使得测试变得复杂&#xff0c;因为无法像…...

Java详解I/O

前言&#xff1a; 小弟能力不足&#xff0c;认知有限&#xff0c;难免考虑不全面&#xff0c;希望大佬能给出更好的建议&#xff0c;指出存在的问题和不足&#xff0c;在此跪谢。 IO发展史 Java中对于I/O能力的支持主要分为三个比较关键的阶段&#xff1a; BIO 第一个阶段…...

数据处理生产环境_spark获取df列当前日期的前一天日期

需求描述&#xff1a; 我现在有一个dataframe,名为dfin,样例数据如下 a1_id_lxha2_PHtime比亚迪_汉1232023-11-15 12:12:23比亚迪_汉1252023-11-15 13:14:51比亚迪_汉1232023-11-15 12:13:23比亚迪_汉1262023-11-16 14:12:34比亚迪_秦2312023-11-15 14:12:28比亚迪_秦2342023…...

第四代智能井盖传感器,实时守护井盖位安全

城市管理中井盖的安全问题始终是一个不容忽视的方面。传统的巡检方式不仅效率低下&#xff0c;无法实现实时监测&#xff0c;而且很难准确掌握井盖的异动状态。因此智能井盖传感器的应用具有重要意义。这种智能传感器可以帮助政府实时掌握井盖的状态&#xff0c;一旦发现异常情…...

【前端知识】Node——文件流的读写操作

四种基本流类型: 1.Writable: 可以向其写入数据的流 2.Readable: 可以从中读取数据的流 3.Duplex&#xff1a;同时为Readable 和 Writable 4.Transform: Duplex可以在写入和读取数据时修改或转换数据的流 一、Readable const fs require(fs);// 创建文件的Readable const rea…...

解决证书加密问题:OpenSSL与urllib3的兼容性与优化

在使用客户端证书进行加密通信时&#xff0c;用户可能会遇到一些问题。特别是当客户端证书被加密并需要密码保护时&#xff0c;OpenSSL会要求用户输入密码。这对于包含多个调用的大型会话来说并不方便&#xff0c;因为密码无法在连接的多个调用之间进行缓存和重复使用。用户希望…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...