VUE-002-前端分页(el-pagination)展示数据
在web开发过程中,通常使用表格展示数据,在数据较多时采用分页的方式展示给用户。
分页方式有前端假分页和后端分页两种实现方式,此文仅记录前端假分页实现方式。
第一步:添加分页组件(el-pagination)在表格下方,添加的代码如下所示:
<template>
<el-table>
...
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[15, 30, 50, 100]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="currentTotal">
</el-pagination>
</template> <script>
...
</script>
第二步:添加分页所需的变量,如下所示:
<script>
export default {
methods: {
...
},
data() {
return {
currentPage: 1,
pageSize: 30,
currentTotal: 0, tableData: []
}
}
}
</script>
第三步:添加相应的分页方法,如下所示:
<script>
export default {
methods: {
handleSizeChange(val) {
this.pageSize = val;
console.log(`每页 ${val} 条`);
},
handleCurrentChange(val) {
this.currentPage = val;
console.log(`当前页: ${val}`);
}
},
data() {
return {
currentPage: 1,
pageSize: 30,
currentTotal: 0, tableData: []
}
}
}
</script>
第四步:修改查询按钮逻辑,在成功查询后,更新数据的总数量。代码如下所示:
<script>
import {ServFindAllByConditions} from '@/service/database'
export default {
methods: {
handleBtnQuery(query) {
if (query.env === "") {
this.$message({
message: '请选择查询环境',
type: 'warning'
});
return;
} ServFindAllByConditions(query).then(res => {
this.tableData = res.data;
this.currentTotal = this.tableData.length;
this.$message({
message: res.msg,
type: res.code == 200 ? 'success' : 'warning'
});
})
.catch(err => {
console.log(err)
})
},
handleSizeChange(val) {
this.pageSize = val;
console.log(`每页 ${val} 条`);
},
handleCurrentChange(val) {
this.currentPage = val;
console.log(`当前页: ${val}`);
}
},
data() {
return {
currentPage: 1,
pageSize: 30,
currentTotal: 0, tableData: []
}
}
}
</script>
第五步:使用slice实现前端的假分页,最终vue文件中的主要代码如下所示:
<template>
<d2-container>
<el-form :model="query" :inline="true">
<el-form-item label="英文简称:">
<el-input v-model="query.eng" placeholder="请输入英文简称..." clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="handleBtnQuery(query)" type="primary" icon="el-icon-search">搜索</el-button>
</el-form-item>
</el-form> <el-table
:data="tableData.slice((currentPage-1)*pageSize,currentPage*pageSize)"
hight="250"
border
stripe
max-height="650"
style="width: 100%">
<el-table-column fixed type="index" width="50"></el-table-column>
<!--<el-table-column prop="id" label="系统主键" width="100"></el-table-column>-->
...
...
<el-table-column label="访问链接" width="400" show-overflow-tooltip>
<template slot-scope="scope">
<a :href="scope.row.url" target="_blank" class="buttonText">{{scope.row.url}}</a>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[15, 30, 50, 100]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="currentTotal">
</el-pagination>
</template> <script>
import {ServFindAllByConditions} from '@/service/database'
export default {
methods: {
handleBtnQuery(query) {
if (query.env === "") {
this.$message({
message: '请选择查询环境',
type: 'warning'
});
return;
} ServFindAllByConditions(query).then(res => {
this.tableData = res.data;
this.currentTotal = this.tableData.length;
this.$message({
message: res.msg,
type: res.code == 200 ? 'success' : 'warning'
});
})
.catch(err => {
console.log(err)
})
},
handleSizeChange(val) {
this.pageSize = val;
console.log(`每页 ${val} 条`);
},
handleCurrentChange(val) {
this.currentPage = val;
console.log(`当前页: ${val}`);
}
},
data() {
return {
currentPage: 1,
pageSize: 30,
currentTotal: 0, tableData: []
}
}
}
</script>
最终效果如下所示:

VUE-002-前端分页(el-pagination)展示数据的更多相关文章
- Jquery前端分页插件pagination同步加载和异步加载
上一篇文章介绍了Jquery前端分页插件pagination的基本使用方法和使用案例,大致原理就是一次性加载所有的数据再分页.https://www.jianshu.com/p/a1b8b1db025 ...
- 循序渐进VUE+Element 前端应用开发(27)--- 数据表的动态表单设计和数据存储
在我们一些系统里面,有时候会需要一些让用户自定义的数据信息,一般这些可以使用扩展JSON进行存储,不过每个业务表的显示项目可能不一样,因此需要根据不同的表单进行设计,然后进行对应的数据存储.本篇随笔结 ...
- 前端分页插件pagination
摘要: 最近在开发项目中又用到了前端分页,以前也做过,为了方便以后使用所以将他封装成第三方插件,不依赖任何库.网上已经有很多插件,问什么还要自己造轮子? 自己写的扩展性高 不依赖任何库 作为一次技术沉 ...
- Jquery前端分页插件pagination使用
插件描述:JqueryPagination是一个轻量级的jquery分页插件.只需几个简单的配置就可以生成分页控件.并且支持ajax获取数据,自定义请求参数,提供多种方法,事件和回调函数,功能全面的分 ...
- 基于vue2.0实现仿百度前端分页效果(二)
前言 上篇文章中,已经使用vue实现前端分页效果,这篇文章我们单独将分页抽离出来实现一个分页组件 先看实现效果图 代码实现 按照惯例,我们在冻手实现的时候还是先想一想vue实现组件的思路 1.需要提前 ...
- 循序渐进VUE+Element 前端应用开发(28)--- 附件内容的管理
在我们很多模块里面,都需要使用到一些诸如图片.Excel文件.PDF文件等附件的管理,一般我们倾向于把它独立为一个公用的附件管理模块,这样可以有效的统一管理附件的信息.本篇随笔介绍附件内容的管理,包括 ...
- Repeater控件 ---表格展示数据
简介: Repeater控件是Web 服务器控件中的一个容器控件,它使您可以从页的任何可用数据中创建出自定义列表. Repeater 控件不具备内置的呈现功能,这表示用户必须通过创建模板为 Repea ...
- Django中使用JS通过DataTable实现表格前端分页,每页显示页数,搜索等功能
Django架构中自带了后端分页的技术,通过Paginator进行分页,前端点击按钮提交后台进行页面切换. 优缺点:后端分页对于数据量大的场景有其优势,但页面切换比较慢. 后端分页python3代码如 ...
- EasyNVR RTSP转RTMP-HLS流媒体服务器前端构建之:使用BootstrapPagination以分页形式展示数据信息
上一篇介绍通过接口来获取数据,本篇将介绍如何以分页形式展示出接口获取到的数据 获取到的数据往往会很多,为了追去页面的美观和方便用户的检索,需要进行分页的展示: EasyNVR可接如多通道,当我们的通道 ...
- EasyNVR摄像机网页无插件直播方案H5前端构建之:使用BootstrapPagination以分页形式展示数据信息
背景介绍 EasyNVR核心在于摄像机的音视频流的获取.转换.转码与高性能分发,同时同步完成对实时直播流的录像存储,在客户端(PC浏览器.Android.iOS.微信)进行录像文件的检索.回放和下载. ...
随机推荐
- 帆软报表(finereport)动态列查询
新建普通报表,新建一个数据集ds1,sql语句:select * from 销量 设计模板:选择复选按钮组控件 设置 控件名称 paraed , 控件值设置为公式:["列名",& ...
- 实现JWT刷新机制以及让过期时间更精确
借助accessToken和refreshToken实现 accessToken控制刷新间隔,refreshToken控制最长过期时间 Min过期时间 = refreshToken过期时间 ...
- IIS无法删除应该程序池 因为它包含X个应用程序
今天代码主分支在vs2015创建了虚拟目录http://localhost/webapp指向的物理路径是E:\webapp 之后新开了一个分支把代码放在了D:\webapp之后又在vs2015中创建了 ...
- 浅谈z-index
z-index使用条件 CSS3之前,z-index属性只有和定位元素在(postion不为static的元素)一起的时候才会有作用,但CSS3中flex盒子的子元素也可以设置z-index.理论上来 ...
- LOCAL_EXPORT_××用法
http://stackoverflow.com/questions/6595208/what-does-this-line-mean-local-export-c-includes LOCAL_EX ...
- Python内置函数之classmetho staticmethod
当对类的静态属性进行修改时(不需要借助于对象就行类静态属性的修改) class Goods: discount = 0.5 def __init__(self,name,price): self.na ...
- eclipse查看一个方法被谁引用(调用)的快捷键四种方式
1.(首推)双击选中该方法,Ctrl+Alt+H 如果你想知道一个类的方法到底被那些其他的类调用,那么请选中这个方法名,然后按“Ctrl+Alt+H”, Eclipse就会显示出这个方法被哪些方法调用 ...
- ABP给WebApi添加性能分析组件Miniprofiler
在ABP的WebApi中,对其性能进行分析监测是很有必要的.而悲剧的是,MVC项目中可以使用的MiniProfiler或Glimpse等,这些都不支持WebApi项目,而且WebApi项目通常也没有界 ...
- 向量 dot cross product 点积叉积 几何意义
向量 dot cross product 点积叉积 几何意义 有向量 a b 点积 a * b = |a| * |b| * cosθ 几何意义: 1. a * b == 0,则 a ⊥ b 2. a ...
- webpack打包后该如何访问项目?
一.问题描述 开发环境,页面浏览都OK,产出文件后,直接打开产出目录的index.html,页面空白. 二.预期结果 能正常看到页面. 三.问题分析 你可能会在编译的最后看到如下一句话: Tip: b ...