基于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 相关文章推荐
Prototype使用指南之ajax
Jan 10 Javascript
js里取容器大小、定位、距离等属性搜集整理
Aug 19 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
May 14 Javascript
javascript密码强度校验代码(两种方法)
Aug 10 Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
Oct 09 Javascript
ajax跨域调用webservice的实现代码
May 09 Javascript
javascript小数精度丢失的完美解决方法
May 31 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
Aug 25 Javascript
浅谈react受控组件与非受控组件(小结)
Feb 09 Javascript
jQuery实现form表单序列化转换为json对象功能示例
May 23 jQuery
jQuery层叠选择器用法实例分析
Jun 28 jQuery
javascript实现搜索筛选功能实例代码
Nov 12 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文件上传简单实现方法
2015/01/24 PHP
最新制作ThinkPHP3.2.3完全开发手册
2015/11/23 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
利用Laravel事件系统如何实现登录日志的记录详解
2017/05/20 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
javascript innerText和innerHtml应用
2010/01/28 Javascript
jQuery下通过replace字符串替换实现大小图片切换
2012/05/22 Javascript
Javascript显示和隐藏ul列表的方法
2015/07/15 Javascript
JQuery的常用选择器、过滤器、方法全面介绍
2016/05/25 Javascript
Vue实现双向数据绑定
2017/05/03 Javascript
nodejs中密码加密处理操作详解
2018/03/20 NodeJs
vue单页面应用打开新窗口显示跳转页面的实例
2018/09/21 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
2018/12/10 jQuery
JavaScript内置对象math,global功能与用法实例分析
2019/06/10 Javascript
微信小程序picker组件两列关联使用方式
2020/10/27 Javascript
windows下python之mysqldb模块安装方法
2017/09/07 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
2018/10/15 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
Python检查ping终端的方法
2019/01/26 Python
Django之创建引擎索引报错及解决详解
2019/07/17 Python
Python基于tkinter canvas实现图片裁剪功能
2020/11/05 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
Python爬取网站图片并保存的实现示例
2021/02/26 Python
css3实现wifi信号逐渐增强效果实例
2017/08/09 HTML / CSS
澳大利亚最大的护发和护肤品购物网站:RY
2019/12/26 全球购物
学生自我评语大全
2014/04/18 职场文书
《槐乡五月》教学反思
2014/04/25 职场文书
MySQL 角色(role)功能介绍
2021/04/24 MySQL
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python
php png失真的原因及解决办法
2021/10/24 PHP
Java 实战项目之家居购物商城系统详解流程
2021/11/11 Java/Android
python接口测试返回数据为字典取值方式
2022/02/12 Python