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 ...
随机推荐
- oracle表空间相关统计查询
部分转自 https://www.cnblogs.com/xwdreamer/p/3511047.html--查询表空间使用情况SELECT UPPER(F.TABLESPACE_NAME) &quo ...
- kubernets过滤pod标签(labels)
版权声明:本文为博主原创文章,支持原创,转载请附上原文出处链接和本声明. 本文地址:https://www.cnblogs.com/wannengachao/p/12074399.html 1.查看p ...
- DNS服务搭建(正反向解析)
版权声明:本文为博主原创文章,支持原创,转载请附上原文出处链接和本声明. 本文地址链接:https://www.cnblogs.com/wannengachao/p/11954625.html 1.安 ...
- Element-ui 中的Dialog 对话框
给表头添加一个底部分割线 固定表格的内容高度 添加底部按钮 <template> <div> <el-button type="text" @clic ...
- c++ 命令行执行
常用命令如下 g++ -g -std=c++ a.cpp -std 指定c++的版本 -g 在可执行程序中包含标准调试信息 -o FILE 指定输出文件名,在编译为目标代码时,这一选项不是必须的.如果 ...
- acwing 600. 仰视奶牛
题目地址 https://www.acwing.com/problem/content/description/602/ 约翰有N头奶牛,编号为1到N. 现在这N头奶牛按编号从小到大的顺序站成了一排 ...
- Python连载42-异步协程函数
一. asyncio 1.python3.4开始引入标准库之中,内置对异步io的支持 2.asyncio本身是一个消息循环 3.步骤: (1)创建消息循环 (2)把协程导入 (3)关闭 4.举例: ...
- 史上最全的用Python操控手机APP攻略!建议收藏!
最近经常看到用Python操作手机APP的项目,例如抖音.闲鱼之类的,看完后发现这些项目无一例外需要部署ADB环境.至于什么是ADB,很多大神都讲过,只是写得比较专业,我等菜鸟看完还是云里雾里. ...
- DedeCMS V5.7 SP2后台代码执行漏洞复现(CNVD-2018-01221)
dedeCMS V5.7 SP2后台代码执行漏洞复现(CNVD-2018-01221) 一.漏洞描述 织梦内容管理系统(Dedecms)是一款PHP开源网站管理系统.Dedecms V5.7 SP2 ...
- .net 数据源DataSet 转换成模型
/// <summary> /// DataSet转换成model 自动赋值返回集合 /// </summary> /// <typeparam name="T ...