vue+node+elementUI实现分页功能
第1===》收集当前页码 和 每页显示条数
第2==》发送ajax请求页码 和 每页显示条数发送给后端
第3===》接收后端返回的数据总条数 total 和 当前页码的数据 data
第3===》如果当前页没有数据 且 排除第一页,防止出现删除当前页后出现页面没有数据
<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>
// 数据 data() { return { currentPage: 1, // 当前页 total: 0, // 数据总条数 pageSize: 3 // 每页条数 }; },
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(); }, }
后端用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毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!
支付宝
微信
如果文中有什么错误,欢迎指出。以免更多的人被误导。