vue+element实现分页--之--前端分页
效果图:

访问的数据量小,一次返回所有数据,再次利用elementUI-Table 和el-pagination组件进行展示,关键点事数据的筛选
官网的完整案例
<div class="block">
<span class="demonstration">完整功能</span>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage4"
:page-sizes="[100, 200, 300, 400]" //显示 5条/页的值
:page-size="100"
layout="total, sizes, prev, pager, next, jumper" //分别对应了[共33条, 5条/页,<.......>]
:total="400"> //设置总条数
</el-pagination>
</div>
<script>
export default {
methods: {
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
}
},
data() {
return {
currentPage1: 5,
currentPage2: 5,
currentPage3: 5,
currentPage4: 4
};
}
}
</script>
demo的使用
<el-table
:data="list"
style="width: 100%"
@selection-change="selectItem">
<el-table-column type="selection" width="50"></el-table-column>
<el-table-column label="用户名" prop="userName" width="150"></el-table-column>
<el-table-column label="用户代码" prop="userCode" width="150"></el-table-column>
<el-table-column label="所属机构代码" prop="comCode" width="140"></el-table-column>
<el-table-column label="用户描述" prop="userDescription" width="300"></el-table-column>
<el-table-column label="用户状态" align="center" prop="userState" width="100">
<template scope="scope">
<div>
<!-- {{ scope.row.userState | userState }}-->
{{scope.row.userState == 0 ? "启用" : scope.row.userState == 1 ? "禁用" : "解锁"}}
</div>
</template>
</el-table-column>
<el-table-column label="创建时间" prop="makeDate" width="140"></el-table-column>
<el-table-column label="操作" width="200" align="center">
<template scope="scope">
<div>
<span>
<router-link :to="{ name: 'usersEdit', params: { id: scope.row.userCode }}"
class="btn-link edit-btn"> 编辑 </router-link>
</span>
<span>
<el-button size="small" type="danger" @click="confirmDelete(scope.row)">删除</el-button>
</span>
</div>
</template>
</el-table-column>
</el-table>
<div class="pos-rel p-t-20">
<btnGroup :selectedData="multipleSelection" :type="'users'"></btnGroup>
<div class="block pages"> <el-pagination
@current-change="handleCurrentChange"
@size-change="handleSizeChange"
layout="total, sizes,prev, pager, next"
:page-sizes="[1, 5,8, 10]"
:page-size="limit"
:current-page="page"
:total="total">
</el-pagination>
</div>
</div>
接着设置data(){ }
data() {
return {
list:[],
tableData: [],
realname: '',
multipleSelection: [],
pagesize: 8,
page:1, //对应el-pagination current-page
limit:5, //和:page-size 对应
total:null, //和:total对应
}
},
请求数据
getAllUsers() {
this.loading = true
const data = {
params: {
realname: this.realname,
page: this.currentPage,
rows: this.limit
}
}//不要了这个是按后台分页所需要的数据
this.apiGet('admincrud/users', data).then((res) => {
console.log('res = ', _g.j2s(res))
this.handelResponse(res, (data) => {
this.tableData = data.list
this.dataCount = data.total
this.pageList()
})
})
},
数据过滤
//处理数据
getList() {
//es6过滤得到满足搜索条件的展示数据list
// let list2 = this.data.filter((item, index) =>
// item.name.includes(this.tableData)
// )
let list=this.tableData;
this.list = list.filter((item, index) =>
index < this.page * this.limit && index >= this.limit * (this.page - 1)
)
this.total = list.length
},
俩个按钮事件的处理函数
// 当每页数量改变
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.limit = val
this.getList()
},
// 当当前页改变
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.page = val
this.getList()
},
vue+element实现前端分页及前端搜索功能
主要他的这个搜索过滤挺好的简单不要重新访问后台,我自己没时间改了,现在把思路过程放这里
见下一篇
atzhang
vue+element实现分页--之--前端分页的更多相关文章
- vue2.0 + Element UI + axios实现表格分页
注:本文分页组件用原生 html + css 实现,element-ui里有专门的分页组件可以不用自己写,详情见另一篇博客:https://www.cnblogs.com/zdd2017/p/1115 ...
- Bootstrap table前端分页(ssm版)
说明bootstrap table可以前端分页,也可以后端sql用limit分页.前端分页下性能和意义都不大,故一般情况下不用这种,请看我的另一篇后端分页的博客源码下载地址:https://git.o ...
- EasyUI表格DataGrid前端分页和后端分页的总结
Demo简介 Demo使用Java.Servlet为后台代码(数据库已添加数据),前端使用EasyUI框架,后台直接返回JSON数据给页面 1.配置Web.xml文件 <?xml version ...
- Jeasyui的datagrid前端分页要点
Jeasyui的分页有两种方式: 1. 服务器端分页,是真正的分页,datagridview的pager会自动把pageSize和pageNum传到后台,后台根据根据pageSize和pageNum构 ...
- 循序渐进VUE+Element 前端应用开发(30)--- ABP后端和Vue+Element前端结合的分页排序处理
在很多列表展示数据的场合中,大多数都会需要一个排序的处理,以方便快速查找排序所需的数据,本篇随笔介绍如何结合ABP后端和Vue+Element前端结合的分页排序处理过程. 1.Vue+Element前 ...
- vue+element的表格分页和前端搜索
1.前端后台管理会存在很多表格,表格数据过多就需要分页;2.前端交互每次搜索如果都请求服务器会加大服务器的压力,所以在数据量不是很大的情况下可以一次性将数据返回,前端做检索3.下面贴上一个demo & ...
- vue2.0+Element UI 表格前端分页和后端分页
之前写过一篇博客,当时对element ui框架还不太了解,分页组件用 html + css 自己写的,比较麻烦,而且只提到了后端分页 (见 https://www.cnblogs.com/zdd20 ...
- 循序渐进VUE+Element 前端应用开发(4)--- 获取后端数据及产品信息页面的处理
在前面随笔<循序渐进VUE+Element 前端应用开发(3)--- 动态菜单和路由的关联处理>中介绍了在Vue + Element整合框架中,实现了动态菜单和动态路由的处理,从而可以根据 ...
- 循序渐进VUE+Element 前端应用开发(5)--- 表格列表页面的查询,列表展示和字段转义处理
在我们一般开发的系统界面里面,列表页面是一个非常重要的综合展示界面,包括有条件查询.列表展示和分页处理,以及对每项列表内容可能进行的转义处理,本篇随笔介绍基于Vue +Element基础上实现表格列表 ...
随机推荐
- 【题解】Luogu P2214 [USACO14MAR]哞哞哞Mooo Moo
P2214 [USACO14MAR]哞哞哞Mooo Moo 题目描述 Farmer John has completely forgotten how many cows he owns! He is ...
- 【Azure API 管理】APIM集成内网虚拟网络后,启用自定义路由管理外出流量经过防火墙(Firewall),遇见APIs加载不出来问题
问题描述 使用 Azure 虚拟网络,Azure APIM 可以管理无法通过 Internet 访问的 API,达到以保护企业内部的后端API的目的.在虚拟网络中,启用网络安全组(NSG:Networ ...
- redis实现分布式锁天然的缺陷
redis分布式锁基本原理 采用 redis 实现分布式锁,主要是利用其单线程命令执行的特性,一般是 setnx, 只会有一个线程会执行成功,也就是只有一个线程能成功获取锁: 看着很完美 看看可能有什 ...
- JS 使用try catch捕获异常
JS 使用try catch捕获异常 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 简介 前端是攻克客户的先锋,需要特别注意到 ...
- git schnnel failed to receive handshake, SSLTLS connection failed
git schnnel failed to receive handshake, SSLTLS connection failed 报错,查看原因为git安装时ssl选择的不是openssl.重新安装 ...
- Java:Apache Commons 工具类介绍及简单使用
Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下面是我这几年做开发过程中自己用过的工具类做简单介绍. Commons简介 组件 功能介绍 commo ...
- Springboot:单元测试日志打印@Slf4j 注解的使用方法
当自己写日志的时候,肯定需要: private final Logger logger = LoggerFactory.getLogger(LoggerTest.class); 每次写新的类,就需要重 ...
- R 语言学习过程全记录 ~
RStudio介绍超详细的教程:https://www.jianshu.com/p/132919ca2ca9 前辈的心得:https://blog.csdn.net/kMD8d5R/article/d ...
- 网站图片无缝兼容 WebP/AVIF
前言 WebP 格式发布已有十余年,但不少站点至今仍未使用,只为兼顾极少数低版本浏览器.至于去年发布的 AVIF 格式,使用的站点就更少了. 然而图片往往是流量大户,与其费尽心机优化脚本体积,可能还不 ...
- 「AGC027D」Modulo Matrix
「AGC027D」Modulo Matrix 传送门 神仙构造题. 首先考虑一个非常自然的思路,我们把棋盘黑白染色后会变成一个二分图,黑色棋子只会与白色棋子相邻. 也就是说,我们可以将二分图的一部随便 ...