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基础上实现表格列表 ...
随机推荐
- 基于ABP落地领域驱动设计-05.实体创建和更新最佳实践
目录 系列文章 数据传输对象 输入DTO最佳实践 不要在输入DTO中定义不使用的属性 不要重用输入DTO 输入DTO中验证逻辑 输出DTO最佳实践 对象映射 学习帮助 系列文章 基于ABP落地领域驱动 ...
- excel vba的inputBox函数
Sub test1() Dim h Dim j As Integer j = 0 Dim n1 As Integer '分行单元格在第几列 Dim m1 As Integ ...
- 关于Ubuntu的超级管理员Root的切换及初始密码设置
背景介绍 总有一些操作,可能需要更高的超级管理员权限才能进行,甚至才可见有些文件,所以在Linux中我们需要切换到Root用户,也就是对应的Windows的Administrator账户. 从当前用户 ...
- 24、配置Oracle下sqlplus历史命令的回调功能
24.1.前言: 1.在oracle服务器上使用默认的sqlplus写sql命令时,如果写错了一个字母需要修改时,是无法通过 退格键消除错误的字母的,只能另起一行,重新写sql语句,而且也不能通过键盘 ...
- Gym 101334E dp
分析: 这一题给出的遍历的点的序列,不是树的中序遍历,前序遍历,只要遇到一个节点就打印一个节点.关键点就在,这个序列的首字母和尾字母一定要相同,因为最终都会回到根节点,那么每一个子树也一样. 状态: ...
- sed 大括号 sed {} 的作用详解
今天看别人写的脚本的时候,看到了sed -r {} 我看网上对于这个的记录比较少,所以就写了这篇随笔. 先看一下效果 cat test.txt image: qqq/www/eee:TAG ...
- linux进程后台运行的几种方法 - nohup/setsid/&
linux进程后台运行的几种方法 - nohup/setsid/& [转载] 我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务 ...
- Dubbo:dubbo管理界面安装
首先需要Tomcat.Zookeeper安装后在进行安装Dubbo管理界面 提供Dubbo-admin管理界面war包: https://github.com/zhaoyue123ABC/Publi ...
- linux~大文件相关操作的总结
1.生成指定大小的文件 在当前目录下生成一个50M的文件: dd if=/dev/zero of=50M.file bs=1M count=50 truncate -s 2G ~/big.log.t ...
- Exception 和Error异常大部分人都犯过的错。
先看再点赞,给自己一点思考的时间,如果对自己有帮助,微信搜索[程序职场]关注这个执着的职场程序员. 我有什么:职场规划指导,技能提升方法,讲不完的职场故事,个人成长经验. 1,简介 Exception ...