基于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的执行效率一些方法总结
Dec 25 Javascript
js获取光标位置和设置文本框光标位置示例代码
Jan 09 Javascript
js实现千分符和保留几位小数的简单实例
Aug 01 Javascript
JS调用Android、Ios原生控件
Jan 06 Javascript
webpack进阶——缓存与独立打包的用法
Aug 02 Javascript
微信小程序canvas拖拽、截图组件功能
Sep 04 Javascript
vue-cli 3.x 修改dist路径的方法
Sep 19 Javascript
Vue 动态组件与 v-once 指令的实现
Feb 12 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
Sep 10 Javascript
如何基于filter实现网站整体变灰功能
Apr 17 Javascript
学前端,css与javascript重难点浅析
Jun 11 Javascript
vue3中轻松实现switch功能组件的全过程
Jan 07 Vue.js
原生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/12/01 PHP
php中unserialize返回false的解决方法
2014/09/22 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
2010/01/22 Javascript
javascript中的throttle和debounce浅析
2014/06/06 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
JQuery显示隐藏DIV的方法及代码实例
2015/04/16 Javascript
轻松掌握JavaScript代理模式
2016/08/26 Javascript
canvas雪花效果核心代码分享
2017/02/19 Javascript
使用Vue完成一个简单的todolist的方法
2017/12/01 Javascript
详解vue 自定义marquee无缝滚动组件
2019/04/09 Javascript
使用webpack搭建vue环境的教程详解
2019/12/31 Javascript
javascript浅层克隆、深度克隆对比及实例解析
2020/02/09 Javascript
微信小程序仿抖音短视频切换效果的实例代码
2020/06/24 Javascript
vue中template的三种写法示例
2020/10/21 Javascript
[45:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第二场 6.2
2018/06/04 DOTA
python中关于时间和日期函数的常用计算总结(time和datatime)
2013/03/08 Python
python下载文件时显示下载进度的方法
2015/04/02 Python
Python3 jupyter notebook 服务器搭建过程
2018/11/30 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
2020/04/12 Python
python输出数学符号实例
2020/05/11 Python
TensorFlow-gpu和opencv安装详细教程
2020/06/30 Python
Python os库常用操作代码汇总
2020/11/03 Python
python 使用csv模块读写csv格式文件的示例
2020/12/02 Python
Muziker英国:中欧最大的音乐家商店
2020/02/05 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
开业庆典邀请函
2014/01/08 职场文书
接待员岗位责任制
2014/02/10 职场文书
点菜员岗位职责范本
2014/02/14 职场文书
讲文明树新风演讲稿
2014/05/12 职场文书
学习保证书怎么写
2015/02/26 职场文书
幼师自荐信范文
2015/03/06 职场文书
2015年消防工作总结
2015/04/24 职场文书
用JS创建一个录屏功能
2021/11/11 Javascript
win11如何查看端口是否被占用? Win11查看端口是否占用的技巧
2022/04/05 数码科技