基于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 相关文章推荐
背景图跟随鼠标移动的Mootools插件实现代码
Dec 12 Javascript
setTimeout和setInterval的深入理解
Nov 08 Javascript
JavaScript创建一个object对象并操作对象属性的用法
Mar 23 Javascript
浅谈js的异步执行
Oct 18 Javascript
教你快速搭建Node.Js服务器的方法教程
Mar 30 Javascript
swiper动态改变滑动内容的实现方法
Jan 17 Javascript
vue中将html字符串转换成html后遇到的问题小结
Dec 10 Javascript
小程序绑定用户方案优化小结
May 15 Javascript
解决$store.getters调用不执行的问题
Nov 08 Javascript
Vue是怎么渲染template内的标签内容的
Jun 05 Javascript
js实现省级联动(数据结构优化)
Jul 17 Javascript
javascript实现移动端触屏拖拽功能
Jul 29 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代码把全角数字转为半角数字
2007/12/10 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
客户端静态页面玩分页
2006/06/26 Javascript
各浏览器中querySelector和querySelectorAll的实现差异分析
2012/05/23 Javascript
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
2012/07/31 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
2014/01/15 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
2014/05/18 Javascript
js实现可得到不同颜色值的颜色选择器实例
2015/02/28 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
JS设置cookie、读取cookie
2016/02/24 Javascript
基于javascript实现最简单的选项卡切换效果
2016/05/16 Javascript
JS hashMap实例详解
2016/05/26 Javascript
jquery 中toggle的2种用法详解(推荐)
2016/09/02 Javascript
JS实现带动画的回到顶部效果
2017/12/28 Javascript
浅谈Vue下使用百度地图的简易方法
2018/03/23 Javascript
全站最详细的Vuex教程
2018/04/13 Javascript
react-native使用leanclound消息推送的方法
2018/08/06 Javascript
jquery 回调操作实例分析【回调成功与回调失败的情况】
2019/09/27 jQuery
详解为什么Vue中的v-if和v-for不建议一起用
2021/01/13 Vue.js
Django入门使用示例
2017/12/12 Python
Python中矩阵创建和矩阵运算方法
2018/08/04 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
2019/08/27 Python
python爬虫开发之urllib模块详细使用方法与实例全解
2020/03/09 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
2020/05/12 Python
意大利制造的西装、衬衫和针对男士量身定制的服装:Lanieri
2018/04/08 全球购物
电子商务专业个人的自我评价
2013/12/19 职场文书
社区先进事迹材料
2014/05/19 职场文书
植树节标语
2014/06/27 职场文书
转正申请报告格式
2015/05/15 职场文书
仓库管理制度范本
2015/08/04 职场文书
你会写报告?产品体验报告到底该怎么写?
2019/08/14 职场文书
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python
Python基础之元编程知识总结
2021/05/23 Python