基于Vue2.0的分頁組件
更新時間:2021年09月26日 11:22:33 作者:sweetsuzyhyf
這篇文章主要為大家詳細介紹了基于Vue2.0的分頁組件的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了Vue2.0分頁組件的具體實現(xiàn)代碼,供大家參考,具體內容如下
整個示例打包了,有需要的可以下載,有不對的地方歡迎指出: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個頁碼+中間頁面數(shù)的一半 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); } } } });
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Vue使用html2canvas實現(xiàn)截取圖片并保存
html2canvas是一個JavaScript庫,它可以將HTML元素轉換為Canvas元素本文將介紹一下Vue如何使用html2canvas實現(xiàn)截取圖片并保存功能,需要的可以參考下2023-12-12完美解決vue中報錯?“TypeError:?Cannot?read?properties?of?null?
這篇文章主要介紹了完美解決vue中報錯?“TypeError:?Cannot?read?properties?of?null?(reading?‘forEach‘)“,本文給大家分享詳細解決方案,需要的朋友可以參考下2023-02-02vue中axios處理http發(fā)送請求的示例(Post和get)
本篇文章主要介紹了vue中axios處理http請求的示例(Post和get),這里整理了詳細的代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10使用vue-aplayer插件時出現(xiàn)的問題的解決
這篇文章主要介紹了使用vue-aplayer插件時出現(xiàn)的問題的解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03vue項目中的public、static及指定不編譯文件問題
這篇文章主要介紹了vue項目中的public、static及指定不編譯文件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03