基于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 相关文章推荐
jquery购物车实时结算特效实现思路
Sep 23 Javascript
jq实现酷炫的鼠标经过图片翻滚效果
Mar 12 Javascript
使用JavaScript 实现的人脸检测
Mar 24 Javascript
Javascript的动态增加类的实现方法
Oct 20 Javascript
Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法
Oct 30 Javascript
jQuery实现遍历复选框的方法示例
Mar 06 Javascript
带你了解session和cookie作用原理区别和用法
Aug 14 Javascript
Vue2.0系列之过滤器的使用
Mar 01 Javascript
详解Require.js与Sea.js的区别
Aug 05 Javascript
vue使用ajax获取后台数据进行显示的示例
Aug 09 Javascript
KOA+egg.js集成kafka消息队列的示例
Nov 09 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
Jan 02 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
php下获取客户端ip地址的函数
2010/03/15 PHP
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
2010/06/04 PHP
PHP 之Section与Cookie使用总结
2012/09/14 PHP
PHP+Ajax 检测网络是否正常实例详解
2016/12/16 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
符合标准的js表单提交的代码
2007/09/13 Javascript
javascript 框架小结 个人工作经验
2009/06/13 Javascript
JavaScript DOM学习第四章 getElementByTagNames
2010/02/19 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
JS字符串截取函数实例
2013/12/27 Javascript
jQuery链使用指南
2015/01/20 Javascript
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
JavaScript中的对象与JSON
2015/07/03 Javascript
easyui validatebox验证
2016/04/29 Javascript
精彩的Bootstrap案例分享 重点在注释!(选项卡、栅格布局)
2016/07/01 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
[46:55]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
[01:02:30]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
视光学毕业生自荐书范文
2014/02/13 职场文书
安全生产活动月方案
2014/03/09 职场文书
工会主席事迹材料
2014/06/03 职场文书
找工作求职信
2014/07/07 职场文书
国际商务英语专业求职信
2014/07/08 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书
保证书格式
2015/01/16 职场文书
罚款通知怎么写
2015/04/22 职场文书
师德师风培训感言
2015/08/03 职场文书
Redis 配置文件重要属性的具体使用
2021/05/20 Redis