基于Vue2.0的分页组件
程序员文章站
2023-11-19 19:36:04
本文实例为大家分享了vue2.0分页组件的具体实现代码,供大家参考,具体内容如下
整个示例打包了,有需要的可以下载,有不对的地方欢迎指出:vue分页组件
组件部...
本文实例为大家分享了vue2.0分页组件的具体实现代码,供大家参考,具体内容如下
整个示例打包了,有需要的可以下载,有不对的地方欢迎指出:vue分页组件
组件部分代码:
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); } } } });
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。