效果图:

访问的数据量小,一次返回所有数据,再次利用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()
},

  这里主要参考了文章:https://blog.csdn.net/weixin_43216105/article/details/90043828?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

vue+element实现前端分页及前端搜索功能

主要他的这个搜索过滤挺好的简单不要重新访问后台,我自己没时间改了,现在把思路过程放这里

             见下一篇

 

atzhang

vue+element实现分页--之--前端分页的更多相关文章

  1. vue2.0 + Element UI + axios实现表格分页

    注:本文分页组件用原生 html + css 实现,element-ui里有专门的分页组件可以不用自己写,详情见另一篇博客:https://www.cnblogs.com/zdd2017/p/1115 ...

  2. Bootstrap table前端分页(ssm版)

    说明bootstrap table可以前端分页,也可以后端sql用limit分页.前端分页下性能和意义都不大,故一般情况下不用这种,请看我的另一篇后端分页的博客源码下载地址:https://git.o ...

  3. EasyUI表格DataGrid前端分页和后端分页的总结

    Demo简介 Demo使用Java.Servlet为后台代码(数据库已添加数据),前端使用EasyUI框架,后台直接返回JSON数据给页面 1.配置Web.xml文件 <?xml version ...

  4. Jeasyui的datagrid前端分页要点

    Jeasyui的分页有两种方式: 1. 服务器端分页,是真正的分页,datagridview的pager会自动把pageSize和pageNum传到后台,后台根据根据pageSize和pageNum构 ...

  5. 循序渐进VUE+Element 前端应用开发(30)--- ABP后端和Vue+Element前端结合的分页排序处理

    在很多列表展示数据的场合中,大多数都会需要一个排序的处理,以方便快速查找排序所需的数据,本篇随笔介绍如何结合ABP后端和Vue+Element前端结合的分页排序处理过程. 1.Vue+Element前 ...

  6. vue+element的表格分页和前端搜索

    1.前端后台管理会存在很多表格,表格数据过多就需要分页;2.前端交互每次搜索如果都请求服务器会加大服务器的压力,所以在数据量不是很大的情况下可以一次性将数据返回,前端做检索3.下面贴上一个demo & ...

  7. vue2.0+Element UI 表格前端分页和后端分页

    之前写过一篇博客,当时对element ui框架还不太了解,分页组件用 html + css 自己写的,比较麻烦,而且只提到了后端分页 (见 https://www.cnblogs.com/zdd20 ...

  8. 循序渐进VUE+Element 前端应用开发(4)--- 获取后端数据及产品信息页面的处理

    在前面随笔<循序渐进VUE+Element 前端应用开发(3)--- 动态菜单和路由的关联处理>中介绍了在Vue + Element整合框架中,实现了动态菜单和动态路由的处理,从而可以根据 ...

  9. 循序渐进VUE+Element 前端应用开发(5)--- 表格列表页面的查询,列表展示和字段转义处理

    在我们一般开发的系统界面里面,列表页面是一个非常重要的综合展示界面,包括有条件查询.列表展示和分页处理,以及对每项列表内容可能进行的转义处理,本篇随笔介绍基于Vue +Element基础上实现表格列表 ...

随机推荐

  1. 6.17考试总结(NOIP模拟8)[星际旅行·砍树·超级树·求和]

    6.17考试总结(NOIP模拟8) 背景 考得不咋样,有一个非常遗憾的地方:最后一题少取膜了,\(100pts->40pts\),改了这么多年的错还是头一回看见以下的情景... T1星际旅行 前 ...

  2. 【dog与lxy】8.25题解-necklace

    necklace 题目描述 可怜的dog最终还是难逃厄运,被迫于lxy签下城下之约.这时候lxy开始刁难dog. Lxy首先向dog炫耀起了自己的财富,他拿出了一段很长的项链.这个项链由n个珠子按顺序 ...

  3. 【带你手撸Spring】没有哪个框架开发,能离开 Spring 的 FactoryBean!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 老司机,你的砖怎么搬的那么快? 是有劲?是技巧?是后门?总之,那个老司机的代码总是可 ...

  4. Linux 从头学 01:CPU 是如何执行一条指令的?

    作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux. ...

  5. 温故知新,.Net Core遇见Digital Signature(MD5/RSA/SM),微服务签名机制设计

    什么是数字签名(Digital Signature) 数字签名(Digital Signature)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性 ...

  6. 10、Jenkins配置

    10.0.服务器说明: 服务器名称 ip地址 slave-node1 172.16.1.91 10.1.持续集成: 1.什么是持续集成: 持续集成是一种软件开发时实践,即团队开发成员经常集成他们的工作 ...

  7. 27、myslq更改为不自动提交

    27.1.说明: 默认情况下, MySQL启用自动提交模式(变量autocommit为ON).这意味着, 只要你执行DML操作的语句, MySQL会立即隐式提交事务(Implicit Commit). ...

  8. linux学习之路第三天(vim和vi使用)

    vi和vim编辑器 vi和vim的三种常见模式 1.正常模式 在正常模式下,我们可以使用快捷键 以vim打开一个档案就直接进入一般模式了(这是默认的模式).在这个模式中,你可以使用 上下左右按键来移动 ...

  9. Shell脚本对Linux进行文件校验

    Shell脚本对Linux进行文件校验 一.需求 有客户等保需求对文件一致性进行校验,想到利用md5sum工具,因此写脚本来对文件进行自定义扫描,后期可以利用其进行校验,快速校验文件发现变更的文件,一 ...

  10. JUnit5参数化测试的几种方式

    参数化测试一直是津津乐道的话题,我们都知道JMeter有四种参数化方式:用户自定义变量.用户参数.CSV文件.函数助手,那么JUnit5有哪些参数化测试的方式呢? 依赖 JUnit5需要添加junit ...