基于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高级程序设计 阅读笔记(七) ECMAScript中的语句
Feb 27 Javascript
Google的跟踪代码 动态加载js代码方法应用
Nov 12 Javascript
javascript中全局对象的parseInt()方法使用介绍
Dec 19 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
Mar 03 Javascript
javascript正则表达式中的replace方法详解
Apr 20 Javascript
理解javascript中的严格模式
Feb 01 Javascript
vue.js指令v-model实现方法
Dec 05 Javascript
vue.js路由跳转详解
Aug 28 Javascript
AngularJS 应用模块化的使用
Apr 04 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
Jul 21 Javascript
Echarts之悬浮框中的数据排序问题
Nov 08 Javascript
详解如何使用微信小程序云函数发送短信验证码
Mar 13 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 类相关函数的使用详解
2013/05/10 PHP
实用的简单PHP分页集合包括使用方法
2013/10/21 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
PHP7如何开启Opcode打造强悍性能详解
2018/05/11 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
[原创]图片分页查看
2006/08/28 Javascript
利用location.hash实现跨域iframe自适应
2010/05/04 Javascript
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
jquery实现带渐变淡入淡出并向右依次展开的多级菜单效果实例
2015/08/22 Javascript
利用jquery获取select下拉框的值
2016/11/23 Javascript
老生常谈js-react组件生命周期
2017/05/02 Javascript
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
深入理解Vue router的部分高级用法
2018/08/15 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
详解微信小程序支付流程与梳理
2019/07/16 Javascript
Vue实现购物车详情页面的方法
2019/08/20 Javascript
有趣的JavaScript隐式类型转换操作实例分析
2020/05/02 Javascript
Python正则表达式匹配HTML页面编码
2015/04/08 Python
用Python编写web API的教程
2015/04/30 Python
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
python实现flappy bird游戏
2018/12/24 Python
基于树莓派的语音对话机器人
2019/06/17 Python
Python解决pip install时出现的Could not fetch URL问题
2019/08/01 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
For Art’s Sake官网:手工制作的奢华眼镜
2018/12/15 全球购物
参观监狱心得体会
2014/01/02 职场文书
网页美工求职信范文
2014/04/17 职场文书
小学生期末评语大全
2014/04/21 职场文书
乔布斯辞职信(中英文对照)
2015/05/12 职场文书
创业计划书之溜冰场
2019/10/25 职场文书
只用20行Python代码实现屏幕录制功能
2021/06/02 Python
Django与数据库交互的实现
2021/06/03 Python
基于PyQt5制作一个群发邮件工具
2022/04/08 Python