基于Vue2.0的分页组件


Posted in Javascript onMarch 16, 2017

本文实例为大家分享了Vue2.0分页组件的具体实现代码,供大家参考,具体内容如下

整个示例打包了,有需要的可以下载,有不对的地方欢迎指出:vue分页组件

基于Vue2.0的分页组件

组件部分代码:

Vue.component('zpagenav', { 
 template: `<nav class="zpagenav">` + 
     `<ul class="page-ul">` + 
      `<li v-bind:key="index" v-for="(item,index) in pageList" v-bind:class ="item.class" @click.stop="setPage(item)" v-html="item.html">` + 
      `</li>` + 
     `</ul>` + 
     `<span class="total">共 {{total}} 条</span>` + 
    `</nav>`, 
 props: { 
  prevHtml: String, 
  nextHtml: String, 
  page: Number, 
  total: Number, 
  pageSize: Number, 
  maxPage: Number 
 }, 
 computed: { 
  pageList: function () { 
   var _this = this, pageList = []; 
   let pageCount = Math.ceil(_this.total / _this.pageSize); 
   let page = _this.page; 
   let prevHtml = _this.prevHtml ? _this.prevHtml : '<'; 
   let nextHtml = _this.nextHtml ? _this.nextHtml : '>'; 
   let maxPage = _this.maxPage ? _this.maxPage : 9; 
 
   let hasPrev = page > 1; 
   let hasNext = page < pageCount; 
 
   //上一页 
   pageList.push({ 
    class: hasPrev ? '' : 'disabled', 
    page: hasPrev ? page - 1 : page, 
    html: prevHtml 
   }); 
 
   //首页 
   pageList.push({ 
    class: page == 1 ? 'active' : '', 
    page: 1, 
    html: 1 
   }); 
 
   var p0 = Math.floor(maxPage / 2); 
   var p1 = 1 + 2 + p0; //首页+省略至少2个页码+中间页面数的一半 
 
   var start, end; 
   if (page >= p1) { 
    start = page - p0; 
    //前置省略号 
    pageList.push({ 
     class: 'dot', 
     page: page, 
     html: '...' 
    }); 
   } else { 
    start = 2; 
   } 
 
   var p2 = page + p0; 
   if (p2 < pageCount) { 
    end = p2; 
   } else { 
    end = pageCount - 1; 
   } 
 
 
   //页码列表 
   for (let i = start; i <= end; i++) { 
    pageList.push({ 
     class: page == i ? 'active' : '', 
     page: i, 
     html: i 
    }); 
   } 
 
 
   if (end < pageCount - 1) { 
    //后置省略号 
    pageList.push({ 
     class: 'dot', 
     page: page, 
     html: '...' 
    }); 
   } 
 
 
   //尾页 
   if (pageCount > 1) { 
    pageList.push({ 
     class: page == pageCount ? 'active' : '', 
     page: pageCount, 
     html: pageCount 
    }); 
   } 
 
   //下一页 
   pageList.push({ 
    class: hasNext ? '' : 'disabled', 
    page: hasNext ? page + 1 : page, 
    html: nextHtml 
   }); 
 
   return pageList; 
  } 
 }, 
 methods: { 
  setPage: function (item) { 
   if (item.class == '') { 
    this.$emit('pagehandler', item.page); 
   } 
  } 
 } 
});

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

Javascript 相关文章推荐
javascript 新浪背投广告实现代码
Jul 07 Javascript
js 学习笔记(三)
Dec 29 Javascript
为jQuery.Treeview添加右键菜单的实现代码
Oct 22 Javascript
重写javascript中window.confirm的行为
Oct 21 Javascript
DOM节点的替换或修改函数replaceChild()用法实例
Jan 12 Javascript
利用jquery制作滚动到指定位置触发动画
Mar 26 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
Jun 02 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
Oct 17 Javascript
详解js树形控件—zTree使用总结
Dec 28 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
Apr 20 Javascript
vue中使用vue-pdf的方法详解
Sep 05 Javascript
JavaScript 实现下雪特效的示例代码
Sep 09 Javascript
原生js实现验证码功能
Mar 16 #Javascript
基于vue实现多引擎搜索及关键字提示
Mar 16 #Javascript
vue图片加载与显示默认图片实例代码
Mar 16 #Javascript
js中作用域的实例解析
Mar 16 #Javascript
Vue.2.0.5过渡效果使用技巧
Mar 16 #Javascript
JS实现页面打印功能
Mar 16 #Javascript
Vue中添加过渡效果的方法
Mar 16 #Javascript
You might like
Windows下PHP的任意文件执行漏洞
2006/10/09 PHP
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
Win7 64位系统下PHP连接Oracle数据库
2014/08/20 PHP
ThinkPHP框架分布式数据库连接方法详解
2017/03/14 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
代码获取历史上的今天发生的事
2014/04/11 Javascript
IE中的File域无法清空使用jQuery重设File域
2014/04/24 Javascript
用JavaScript实现使用鼠标画线的示例代码
2014/08/19 Javascript
一张Web前端的思维导图分享
2015/07/03 Javascript
chrome调试javascript详解
2015/10/21 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
纯JavaScript手写图片轮播代码
2016/10/20 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
2017/12/25 jQuery
jQuery实现动态加载(按需加载)javascript文件的方法分析
2019/05/31 jQuery
解决vue自定义全局消息框组件问题
2019/11/22 Javascript
[33:33]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第二场 11.27
2020/11/30 DOTA
Python遍历目录的4种方法实例介绍
2015/04/13 Python
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
Python3访问并下载网页内容的方法
2015/07/28 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
Python的条件表达式和lambda表达式实例
2019/01/31 Python
Python线程之定位与销毁的实现
2019/02/17 Python
python如何基于redis实现ip代理池
2020/01/17 Python
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
.NET概念性的面试题
2012/02/29 面试题
班班通校本培训方案
2014/03/12 职场文书
外语系毕业生求职自荐信
2014/04/12 职场文书
民生工作实施方案
2014/05/31 职场文书
导游词格式
2015/02/13 职场文书
2016年校园植树节广播稿
2015/12/17 职场文书
SQL使用复合索引实现数据库查询的优化
2022/05/25 SQL Server