vue+node+elementUI实现分页功能
第1===》收集当前页码 和 每页显示条数
第2==》发送ajax请求页码 和 每页显示条数发送给后端
<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实现分页功能的更多相关文章
- vue+node+elementUI实现注册功能
后端代码 在后端的文件 routes文件夹下的connect.js文件中 // 引入mysql const mysql = require('mysql'); // 创建连接对象 const conn ...
- vue修改elementUI的分页组件视图没更新问题
转: vue修改elementUI的分页组件视图没更新问题 今天遇到一个小问题平时没留意,el-pagination这个分页组件有一个属性是current-page当前页.今天想在methods里面手 ...
- vue+node+mongodb实现的功能
用vue+node +mongodb实现前后台交互的页面代码,已经上传到github上, 地址是: https://github.com/GainLoss/vue-node-mongodb https ...
- vue element-ui 做分页功能之封装
在 vue 项目中的 components 中 创建一个 文件夹,文件夹里创建一个 name(这个名字你随意取).vue <template> <div class=" ...
- vue+node.js+webpack开发微信公众号功能填坑——v -for循环
页面整体框架实现,实现小功能,循环出数据,整体代码是上一篇 vue+node.js+webpack开发微信公众号功能填坑--组件按需引入 修改部门代码 app.vue <yd-flexbox&g ...
- vue+Element-ui实现分页效果
当我们向后台请求大量数据的时候,并要在页面展示出来,请求的数据可能上百条数据或者更多的时候,并不想在一个页面展示,这就需要使用分页功能来去完成了. 1.本次所使用的是vue2.0+element-ui ...
- Vue 分页功能伪代码实现
Vue分页功能的实现 其实分页功能是一个比较简单的demo 后端写好pageNum和pageSize的接口直接传参就是了 // 这里我们假设后端已经写好了 pageNum和pagesize <v ...
- vue+element-ui 实现分页(根据el-table内容变换的分页)
官方例子 官方提示: 设置layout,表示需要显示的内容,用逗号分隔,布局元素会依次显示.prev表示上一页,next为下一页,pager表示页码列表,除此以外还提供了jumper和total,si ...
- vue+elementUI实现 分页表格的单选或者多选、及禁止部分选择
一.vue+elementUI实现 分页表格前的多选 多选效果图: 代码如下: <el-table ref="multipleTable" :data="listD ...
随机推荐
- 6个最优秀的微信小程序UI组件库
开发微信小程序的过程中,选择一款好用的组件库,可以达到事半功倍的效果.自从微信小程序面世以来,不断有一些开源组件库出来,下面6款就是排名比较靠前,用户使用量与关注度比较高的小程序UI组件库.还没用到它 ...
- June 01st, 2019. Week 22nd, Saturday
It is the childlike mind that finds the kingdom. 正是你的童心帮你找到属于自己的王国. From Charles Fillmore. When we w ...
- 操作系统|VirtualBox for Mac(虚拟机软件)
VirtualBox是德国一家软件公司InnoTek所开发的虚拟系统软件,它不仅具有丰富的特色,而且性能也很优异,更是开源的,成为了一个发布在GPL许可之下的自由软件.VirtualBox 可以在 L ...
- [JavaScript]父子窗口间参数传递
概述 当页面嵌入一个iframe,或者打开一个子窗口.这个时候如果父窗口需要与子窗口之间通讯,如果直接用DOM访问对方窗口window,会受到跨于安全机制影响. javascript提供一个方法,可以 ...
- RabbitMQ学习笔记(七、RabbitMQ实战)
目录: 削峰 分布式事务 削峰: 利用RabbitMQ队列消费特性避免峰值下的DB访问,缓解连接压力,在DB释放连接后再去消息数据. 分布式事务: )XA协议:它是一个分布式事务协议,由事务管理器和资 ...
- 201871010116-祁英红《面向对象程序设计(java)》第十六周学习总结
博文正文开头格式:(2分) 项目 内容 <面向对象程序设计(java)> https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://ww ...
- cf之kmp匹配稍稍改一改
看样例就知道要干嘛了 http://codeforces.com/contest/1200/problem/E 每次我们用新的串和答案串匹配,答案串的匹配位置是max(0,(int)ans.size( ...
- idea tomcat debug不能启动的问题
显示:Connected to the target VM, address: '127.0.0.1:54692', transport: 'socket' 其实原因是没调整好面板.晕 ...
- 数据结构与算法-Python/C(目录)
第一篇 基本概念 01 什么是数据结构 02 什么是算法 03 应用实例-最大子列和问题 第二篇 线性结构 01 线性表及其实现 02 堆栈 03 队列 04 应用实例-多项式加法运算 05 小白专场 ...
- angular6 multipart/form-data Post
一般情况下用的都是 第三种 然后碰到后台要求的是这种格式的数据 这时候我们就要修改一下我们的post 请求头,话不多说 直接上代码. 这样子的话 就ok啦!