第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
});
});
});
});

  

vue+node+elementUI实现分页功能的更多相关文章

  1. vue+node+elementUI实现注册功能

    后端代码 在后端的文件 routes文件夹下的connect.js文件中 // 引入mysql const mysql = require('mysql'); // 创建连接对象 const conn ...

  2. vue修改elementUI的分页组件视图没更新问题

    转: vue修改elementUI的分页组件视图没更新问题 今天遇到一个小问题平时没留意,el-pagination这个分页组件有一个属性是current-page当前页.今天想在methods里面手 ...

  3. vue+node+mongodb实现的功能

    用vue+node +mongodb实现前后台交互的页面代码,已经上传到github上, 地址是: https://github.com/GainLoss/vue-node-mongodb https ...

  4. vue element-ui 做分页功能之封装

    在 vue 项目中的 components 中 创建一个 文件夹,文件夹里创建一个 name(这个名字你随意取).vue <template>   <div class=" ...

  5. vue+node.js+webpack开发微信公众号功能填坑——v -for循环

    页面整体框架实现,实现小功能,循环出数据,整体代码是上一篇 vue+node.js+webpack开发微信公众号功能填坑--组件按需引入 修改部门代码 app.vue <yd-flexbox&g ...

  6. vue+Element-ui实现分页效果

    当我们向后台请求大量数据的时候,并要在页面展示出来,请求的数据可能上百条数据或者更多的时候,并不想在一个页面展示,这就需要使用分页功能来去完成了. 1.本次所使用的是vue2.0+element-ui ...

  7. Vue 分页功能伪代码实现

    Vue分页功能的实现 其实分页功能是一个比较简单的demo 后端写好pageNum和pageSize的接口直接传参就是了 // 这里我们假设后端已经写好了 pageNum和pagesize <v ...

  8. vue+element-ui 实现分页(根据el-table内容变换的分页)

    官方例子 官方提示: 设置layout,表示需要显示的内容,用逗号分隔,布局元素会依次显示.prev表示上一页,next为下一页,pager表示页码列表,除此以外还提供了jumper和total,si ...

  9. vue+elementUI实现 分页表格的单选或者多选、及禁止部分选择

    一.vue+elementUI实现 分页表格前的多选 多选效果图: 代码如下: <el-table ref="multipleTable" :data="listD ...

随机推荐

  1. 3-SQL过滤

    # 筛选最大生命值大于6000,最大法力值大1700的英雄,然后按照二者之和从高到低进行排序 SELECT NAME     ,     hp_max,     mp_max  FROM     he ...

  2. 使用VS Code开发纸壳CMS自动编译主题压缩CSS,JS

    Visual Studio Code (简称 VS Code / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持语法高亮.智能代码补全.自定义热键.括号匹配.代码片段.代码对比 Diff.GI ...

  3. 服务器安装neo4j

    neo4j是目前最流行的图形数据库,支持完整的事务.在树形图中,图是有顶点.边和属性组成的,顶点和边都可以设置属性,顶点又称节点,边也叫做关系.每个节点和关系都可以有一个或多个属性,neo4j创建的图 ...

  4. linux系统修改用户密码报错

    版权声明:本文为博主原创文章,支持原创,转载请附上原文出处链接和本声明. 本文地址:https://www.cnblogs.com/wannengachao/p/12069113.html 1.设置新 ...

  5. 新手springmvc web简单搭建过程-caidachun

    第一次做整了一天,中间各种报错,大佬肯定要嘲笑我了,但还是很有成就敢,现在只知道怎么装配,还不知道为什么,还需要学习.加油 1.新建动态web项目 2. 添加jar包,可以到网上下载,commons- ...

  6. pytest框架优化——将异常截屏图片加入到allure报告中

    痛点分析: 在做allure定制化的时候,关于附件添加这一块,我们在代码里可以添加我们准备好的附件,这里用图片,通过下面的方法就能实现 allure.attach(file, '图片描述', allu ...

  7. 深入理解Java中的Garbage Collection

    前提 最近由于系统业务量比较大,从生产的GC日志(结合Pinpoint)来看,需要对部分系统进行GC调优.但是鉴于以往不是专门做这一块,但是一直都有零散的积累,这里做一个相对全面的总结.本文只针对Ho ...

  8. 2019-6-5-WPF-拼音输入法

    原文:2019-6-5-WPF-拼音输入法 title author date CreateTime categories WPF 拼音输入法 lindexi 2019-6-5 17:6:58 +08 ...

  9. 用Python进行数据清洗,这7种方法你一定要掌握

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者 | 常国珍.赵仁乾.张秋剑 来源 |<Python数据科学:技术 ...

  10. Oracle 去重后排序

    因项目需求,需要将查询结果,去重后,在按照主键(自增列)排序,百度一番,记录下来 DEMO SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY S ...