后端一次性返回数据,前端分页

news/2024/11/20 1:22:05/

vue 结合elementUI 分页组件,后端一次性返回数据,前端做分页
1.template中

<el-pagination@size-change="handleSizeChange":page-sizes="[10, 20, 50, 100]"style="float:right"@current-change="currentChangeHandle":current-page="currentPage":page-size="pageSize":total="totalPage"layout="total, sizes,prev, pager, next, jumper">
</el-pagination>

数据

 data(){return{totalPage:0,      // 数据总条数currentPage:1,   // 当前页面pageSize:10,     // 当前页面显示条数dataList: [],		// 页面展示数据tableData: []		// 后端获取的总数据}},

js从后端获取总数据

在这里插入代码片//获取初始数据
getDataList(){api.agentDealiyWMExport(this.dataForm).then(res=>{if(res.data.HEAD.CODE=='000'){this.totalPage=res.data.BODY.total;// 获取后端返回所有数据this.tableData=res.data.BODY.rows; // 对所有数据进行处理,截取数据前 n条数据,显示到页面上this.dataList=this.tableData.slice(0, this.pageSize)}})
},

改变页码

// val 是当前页数
currentChangeHandle (val) {this.currentPage=val;this.dataList = this.tableData.slice((val - 1) * this.pageSize, val * this.pageSize)
},

改变条数

// val每页显示多少条
handleSizeChange(val) {this.dataForm.pageSize=val;this.dataList = this.tableData.slice((this.currentPage - 1) * val, this.currentPage * val)
},

如果还要实现模糊查询(纯前端),主要思想是在请求到后端的数据后,再保存一份tem中间数据,用这个数据去做分页的size 和页码改变时的 数据。
如:
后端请求总数据,多保存一份

    dataTables.value = res// 中间数据 分页相关逻辑使用temDataTables.value = res

在输入搜索词时

/** 输入搜索表关键词 */function handleKeywordInput(val){temDataTables.value = dataTables.value.filter(item=>{return item.tableName.includes(val)})apiTotal.value = temDataTables.value.lengthrenderApiTableData.value = temDataTables.value.slice(0,apiPageSize.value)}

renderApiTableData是渲染到表格的数据
分页相关事件

/** Api分页Size改变 */
function handleApiSizeChange(val){apiPageSize.value=val;renderApiTableData.value = temDataTables.value.slice((apiCurrentPage.value - 1) * val.value, val * apiCurrentPage.value)
}
/** Api分页页码改变 */
function handleApiCurrentChange(val){apiCurrentPage.value=val;renderApiTableData.value =  temDataTables.value.slice((val - 1) * apiPageSize.value, val * apiPageSize.value)
}

参考链接:后端一次返回大量数据,前端做分页处理


http://www.ppmy.cn/news/1548364.html

相关文章

Restful API接⼝简介及为什么要进⾏接⼝压测

一、RESTful API简介 在现代Web开发中&#xff0c;RESTful API已经成为一种标准的设计模式&#xff0c;用于构建和交互网络应用程序。本文将详细介绍RESTful API的基本概念、特点以及如何使用它来设计高效的API接口。 1. 基于协议 HTTP 或 HTTPS RESTful API通常使用HTTP&am…

第 12 章 - Go语言 方法

在Go语言中&#xff0c;方法是一种特殊的函数&#xff0c;它有一个接收者&#xff08;receiver&#xff09;。接收者可以是任何类型的值或指针&#xff0c;通常用于操作该类型的数据。下面将详细解释方法的定义、接收者、方法集&#xff0c;并通过示例代码来加深理解。 方法的…

web——sqliabs靶场——第六关——报错注入和布尔盲注

这一关还是使用报错注入和布尔盲注 一. 判断是否有sql注入 二. 判断注入的类型 是双引号的注入类型。 3.报错注入的检测 可以使用sql报错注入 4.查看库名 5. 查看表名 6.查看字段名 7. 查具体字段的内容 结束 布尔盲注 结束

杨凌职业技术学院信息工程学院“讯方技术HarmonyOS人才训练营”圆满启动!

2024年3月29日上午杨凌职业技术学院信息工程学院讯方技术HarmonyOS人才训练营在醒钟楼D座219正式启动&#xff0c;出席本次活动的有杨凌职业技术学院信息工程学院院长陈高锋、副院长熊刚以及教研室主任冯春卫、教师代表任雅璐、李宇根&#xff0c;华为技术有限公司&#xff08;…

Neo4j Desktop 和 Neo4j Community Edition 区别

Neo4j Desktop 和 Neo4j Community Edition 的主要区别在于它们的用途、功能以及安装和管理方式。以下是这两者的详细对比&#xff1a; 1. Neo4j Desktop Neo4j Desktop 是一个图形化的桌面应用程序&#xff0c;主要为开发人员和个人使用提供了一个便捷的环境来安装、管理和运…

HBase 开发:使用Java操作HBase

1、实战简介 HBase和Hadoop一样&#xff0c;都是用Java进行开发的&#xff0c;本次实训我们就来学习如何使用Java编写代码来操作HBase数据库。 实验环境&#xff1a; hadoop-2.7 JDK8.0 HBase2.1.1 2、任务 1、第1关&#xff1a;创建表 package step1; import java.io.IOE…

第 20 章 - Golang 网络编程

下面将详细介绍Go语言中的网络编程&#xff0c;包括TCP编程、UDP编程和HTTP服务器的创建。为了更好地理解这些概念&#xff0c;我将提供一些简单的示例代码来说明每个部分。 1. TCP 编程 TCP&#xff08;传输控制协议&#xff09;是一种面向连接的协议&#xff0c;它确保数据…

Android从Drawable资源Id直接生成Bitmap,Kotlin

Android从Drawable资源Id直接生成Bitmap,Kotlin val t1 System.currentTimeMillis()val bmp getBmpFromDrawId(this, R.mipmap.ic_launcher_round)Log.d("fly", "1 ${bmp?.byteCount} h${bmp?.height} w${bmp?.width} cost time${System.currentTimeMillis…