vue+node+elementUI实现分页功能
第1===》收集当前页码 和 每页显示条数
第2==》发送ajax请求页码 和 每页显示条数发送给后端
第3===》接收后端返回的数据总条数 total 和 当前页码的数据 data
第3===》如果当前页没有数据 且 排除第一页,防止出现删除当前页后出现页面没有数据
1 2 3 4 5 6 7 8 9 10 11 | < div style="margin-top: 20px; text-align: left;"> < el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[1, 3, 5, 10, 20, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total" ></ el-pagination > </ div > |
1 2 3 4 5 6 7 8 9 | // 数据 data() { return { currentPage: 1, // 当前页 total: 0, // 数据总条数 pageSize: 3 // 每页条数 }; }, |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | methods:{ // 按照分页显示数据的函数 getAccountListByPage() { // 收集当前页码 和 每页显示条数 let pageSize = this .pageSize; let currentPage = this .currentPage; // 发送ajax请求 把分页数据发送给后端 this .axios .get( "http://127.0.0.1:666/account/accountlistbypage" , { params: { pageSize, currentPage } }) .then(response => { console.log( "对应页码的数据:" , response.data); // 接收后端返回的数据总条数 total 和 对应页码的数据 data let { total, data } = response.data; // 赋值给对应的变量即可 this .total = total; this .accountTableData = data; // 如果当前页没有数据 且 排除第一页 if (!data.length && this .currentPage !== 1) { // 页码减去 1 this .currentPage -= 1; // 再调用自己 this .getAccountListByPage(); } }) . catch (err => { console.log(err); }); }, // 每页显示条数改变 就会触发这个函数 handleSizeChange(val) { // 保存每页显示的条数 this .pageSize = val; // 调用分页函数 this .getAccountListByPage(); }, // 当前页码改变 就会触发这个函数 handleCurrentChange(val) { // 保存当前页码 this .currentPage = val; // 调用分页函数 this .getAccountListByPage(); }, } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 后端用node写的代码 /* 按分页显示账号列表的路由 /accountlistbypage */ router.get( "/accountlistbypage" , (req, res) => { // 接收前端参数 let { pageSize, currentPage } = req.query; // 默认值 pageSize = pageSize ? pageSize : 3; currentPage = currentPage ? currentPage : 1; // 构造sql语句 (查询所有数据 按照时间排序) let sqlStr = `select * from account order by ctime desc`; // 执行sql语句 connection.query(sqlStr, (err, data) => { if (err) throw err; // 计算数据总条数 let total = data.length; // 分页条件 (跳过多少条) let n = (currentPage - 1) * pageSize; // 拼接分页的sql语句 sqlStr += ` limit ${n}, ${pageSize}`; // 执行sql语句 (查询对应页码的数据) connection.query(sqlStr, (err, data) => { if (err) throw err; // 把数据返回给前端 两个数据 数据总条数 total 和 对应页码的数据 data res.send({ total, data }); }); }); }); |
遇见问题,这是你成长的机会,如果你能够解决,这就是收获。
作者:晚来南风晚相识
出处:https://www.cnblogs.com/IwishIcould/
本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
如果文中有什么错误,欢迎指出。以免更多的人被误导。
出处:https://www.cnblogs.com/IwishIcould/
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!
万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

支付宝

微信
如果文中有什么错误,欢迎指出。以免更多的人被误导。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY