vue.js表格分页示例


Posted in Javascript onOctober 18, 2016

分页一般和表格一起用,分页链接作为表格的一部分,将分页链接封装成一个独立的组件,然后作为子组件嵌入到表格组件中,这样比较合理。

效果:

vue.js表格分页示例

代码:

1.注册一个组件

js

Vue.component('pagination',{
 template:'#paginationTpl',
 replace:true,
 props:['cur','all','pageNum'],
 methods:{
 //页码点击事件
 btnClick: function(index){
 if(index != this.cur){
  this.cur = index;
 }
 }
 },
 watch:{
 "cur" : function(val,oldVal) {
 this.$dispatch('page-to', val);
 }
 },
 computed:{
 indexes : function(){
 var list = [];
 //计算左右页码
 var mid = parseInt(this.pageNum / 2);//中间值
 var left = Math.max(this.cur - mid,1);
 var right = Math.max(this.cur + this.pageNum - mid -1,this.pageNum);
 if (right > this.all ) { right = this.all}
 while (left <= right){
  list.push(left);
  left ++;
 }
 return list;
 },
 showLast: function(){
 return this.cur != this.all;
 },
 showFirst: function(){
 return this.cur != 1;
 }
 }
 });

模板:

<script type="text/template" id="paginationTpl">
 <nav v-if="all > 1">
 <ul class="pagination">
 <li v-if="showFirst"><a href="javascript:" @click="cur--">«</a></li>
 <li v-for="index in indexes" :class="{ 'active': cur == index}">
 <a @click="btnClick(index)" href="javascript:">{{ index }}</a>
 </li>
 <li v-if="showLast"><a @click="cur++" href="javascript:">»</a></li>
 <li><a>共<i>{{all}}</i>页</a></li>
 </ul>
 </nav>
</script>

HTML:

<div id='item_list'>
 ...
 <pagination :cur="1" :all="pageAll" :page-num="10" @page-to="loadList"></pagination>
</div>

当点击分页链接的时候,通过watch cur,子组件分发 page-to 事件,通过 @page-to="loadList" 标签指定使用父组件 loadList 方法处理事件,父组件接收到page值然后ajax加载数据,根据服务端返回计算并更新自身的 pageAll 值,因为子组件prop通过 :all="pageAll" 动态绑定了父组件的pageAll对象,所以子组件会联动更新。

附上一个简单的表格组件例子:

var vm = new Vue({
 el: "#item_list",
 data: {
 items : [],
 //分页参数
 pageAll:0, //总页数,根据服务端返回total值计算
 perPage:10 //每页数量
 },
 methods: {
 loadList:function(page){
 var that = this;
 $.ajax({
  url : "/getList",
  type:"post",
  data:{"page":page,"perPage":this.perPage},
  dataType:"json",
  error:function(){alert('请求列表失败')},
  success:function(res){
  if (res.status == 1) {
  that.items = res.data.list;
  that.perPage = res.data.perPage;
  that.pageAll = Math.round(res.data.total / that.perPage);//计算总页数
  }
  }
 });
 },
 //初始化
 init:function(){
 this.loadList(1);
 }
 }
 });
 vm.init();

精彩专题分享:jquery分页功能操作 JavaScript分页功能操作

本文已被整理到了《Vue.js前端组件学习教程》,欢迎大家学习阅读。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
xmlHTTP实例
Oct 24 Javascript
拖动一个HTML元素
Dec 22 Javascript
JavaScript delete 属性的使用
Oct 08 Javascript
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
Jan 13 Javascript
js实现的切换面板实例代码
Jun 17 Javascript
jquery选择器需要注意的问题
Nov 26 Javascript
js判断图片加载完成后获取图片实际宽高的方法
Feb 25 Javascript
Node.js编写CLI的实例详解
May 17 Javascript
JS动态添加的div点击跳转到另一页面实现代码
Sep 30 Javascript
跨域解决之JSONP和CORS的详细介绍
Nov 21 Javascript
小程序接入腾讯位置服务的详细流程
Mar 03 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
Dec 02 Vue.js
Angular.js中用ng-repeat-start实现自定义显示
Oct 18 #Javascript
Bootstrap框架的学习教程详解(二)
Oct 18 #Javascript
微信小程序 教程之WXSS
Oct 18 #Javascript
微信小程序 教程之引用
Oct 18 #Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
Oct 18 #Javascript
微信小程序 教程之事件
Oct 18 #Javascript
微信小程序 教程之模板
Oct 18 #Javascript
You might like
PHP文件操作实例总结
2016/09/27 PHP
JavaScript中“+=”的应用
2007/02/02 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
jQuery使用动态渲染表单功能完成ajax文件下载
2013/01/15 Javascript
两种方法实现文本框输入内容提示消失
2013/03/17 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
jQuery中设置form表单中action值的实现方法
2016/05/25 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
js实现点击切换checkbox背景图片的简单实例
2017/05/08 Javascript
javascript观察者模式实现自动刷新效果
2017/09/05 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
详解如何在vue项目中使用lodop打印插件
2018/09/27 Javascript
原生js实现淘宝放大镜效果
2020/10/28 Javascript
python解析xml文件实例分享
2013/12/04 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
详解Python 中sys.stdin.readline()的用法
2019/09/12 Python
python中对_init_的理解及实例解析
2019/10/11 Python
python爬虫模拟浏览器的两种方法实例分析
2019/12/09 Python
tensorflow 实现自定义layer并添加到计算图中
2020/02/04 Python
Python网络爬虫信息提取mooc代码实例
2020/03/06 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
外企C语言笔试题
2013/11/10 面试题
测试驱动开发的主要步骤是什么
2014/12/10 面试题
大学生应聘自荐信
2013/10/11 职场文书
自主招生教师推荐信
2014/05/10 职场文书
工厂门卫的岗位职责
2014/07/27 职场文书
珍惜资源的建议书
2014/08/26 职场文书
法英专业大学生职业生涯规划书范文
2014/09/22 职场文书
寝室长工作失责检讨书
2014/10/06 职场文书
给医院的感谢信
2015/01/21 职场文书