Vue分頁(yè)組件實(shí)例代碼
本文實(shí)例為大家分享了Vue分頁(yè)組件的具體代碼,供大家參考,具體內(nèi)容如下
當(dāng)前組件依賴(lài)bootstrap樣式,使用前請(qǐng)先引用相關(guān)css。
Vue.component('pagination', { template: `<nav aria-label="Page navigation"> <ul class="pagination"> <li :class="{'disabled': pageNum == 1}"><a href="#" v-on:click.prevent="turnToPage(1)" title="首頁(yè)" aria-label="首頁(yè)"><i class="fa fa-fast-backward"></i></a></li> <li :class="{'disabled': pageNum == 1}"><a href="#" v-on:click.prevent="turnToPage(pageNum - 1)" title="上一頁(yè)" aria-label="上一頁(yè)"><i class="fa fa-backward"></i></a></li> <li v-if="pageNum > 4"><a href="#" v-on:click.prevent="turnToPage(pageNum - 4)">...</a></li> <li v-if="pageNum <= 4 && pageNum >1"><a href="#" v-on:click.prevent="turnToPage(1)">1</a></li> <li v-if="pageNum - 3 > 1"><a href="#" v-on:click.prevent="turnToPage(pageNum - 3)">{{pageNum-3}}</a></li> <li v-if="pageNum - 2 > 1"><a href="#" v-on:click.prevent="turnToPage(pageNum - 2)">{{pageNum-2}}</a></li> <li v-if="pageNum - 1 > 1"><a href="#" v-on:click.prevent="turnToPage(pageNum - 1)">{{pageNum-1}}</a></li> <li class="active"><a href="#" v-on:click.prevent="turnToPage(pageNum)">{{pageNum}}</a></li> <li v-if="pageNum + 1 < pageTotal"><a href="#" v-on:click.prevent="turnToPage(pageNum + 1)">{{pageNum+1}}</a></li> <li v-if="pageNum + 2 < pageTotal"><a href="#" v-on:click.prevent="turnToPage(pageNum + 2)">{{pageNum+2}}</a></li> <li v-if="pageNum + 3 < pageTotal"><a href="#" v-on:click.prevent="turnToPage(pageNum + 3)">{{pageNum+3}}</a></li> <li v-if="pageNum >= pageTotal - 4 && pageNum < pageTotal"><a href="#" v-on:click.prevent="turnToPage(pageTotal)">{{pageTotal}}</a></li> <li v-if="pageNum < pageTotal - 4"><a href="#" v-on:click.prevent="turnToPage(pageNum + 4)">...</a></li> <li :class="{'disabled': pageNum == pageTotal}"><a href="#" v-on:click.prevent="turnToPage(pageNum + 1)" title="下一頁(yè)" aria-label="下一頁(yè)"><i class="fa fa-forward"></i></a></li> <li :class="{'disabled': pageNum == pageTotal}"><a href="#" v-on:click.prevent="turnToPage(pageTotal)" title="尾頁(yè)" aria-label="尾頁(yè)"><i class="fa fa-fast-forward"></i></a></li> </ul> </nav>`, props: { pageNum: Number, pageSize: Number, totalItemCount: Number, }, computed: { pageTotal: function () { return Math.ceil(this.totalItemCount / this.pageSize) } }, methods: { turnToPage: function (num) { if (num > this.pageTotal || num <= 0) { //toastr.error(`當(dāng)前頁(yè)碼超出了范圍。頁(yè)碼:${num}`, '錯(cuò)誤') return false } this.$emit('change', num) } } })
props定義三個(gè)屬性:當(dāng)前頁(yè)碼,當(dāng)前頁(yè)顯示數(shù)量,總數(shù)量
computed定義了一個(gè)計(jì)算方法:獲取總數(shù)量/當(dāng)前頁(yè)顯示數(shù)量,向上取整,默認(rèn)取10個(gè)
methods定義了一個(gè)根據(jù)頁(yè)碼跳轉(zhuǎn)方法:最終用于觸發(fā)change事件,$emit用于拋出自定義事件,組件外可以捕獲當(dāng)前定義的change事件
html組件顯示:
以上的值為自己傳入的值
let vm = new Vue({ el: '#app', data: { criteria: { keyword: '', page: { num: 1, size: 10 } }, itemsCount: 0 }, methods: { skiptoPage: function (num) { this.criteria.page.num = num; } } });
以上方法是自定義事件change的方法,你們可以自己去修改內(nèi)容。
效果圖
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue實(shí)現(xiàn)簡(jiǎn)單的發(fā)表評(píng)論功能
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)簡(jiǎn)單的發(fā)表評(píng)論功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10Vue基于iview table展示圖片實(shí)現(xiàn)點(diǎn)擊放大
這篇文章主要介紹了Vue基于iview table展示圖片實(shí)現(xiàn)點(diǎn)擊放大,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08vue3實(shí)現(xiàn)父組件提交校驗(yàn)多個(gè)子組件
這篇文章主要為大家詳細(xì)介紹了vue3如何實(shí)現(xiàn)父組件在提交事件中校驗(yàn)多個(gè)子組件中的form件,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下2023-11-11VUE 無(wú)限層級(jí)樹(shù)形數(shù)據(jù)結(jié)構(gòu)顯示的實(shí)現(xiàn)
在做項(xiàng)目中,會(huì)遇到一些樹(shù)形的數(shù)據(jù)結(jié)構(gòu),常用在左側(cè)菜單導(dǎo)航,本文就介紹一下如何實(shí)現(xiàn),感興趣的可以了解一下2021-07-07laravel5.4+vue+element簡(jiǎn)單搭建的示例代碼
本篇文章主要介紹了laravel5.4+vue+element簡(jiǎn)單搭建的示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08Vue項(xiàng)目中實(shí)現(xiàn)描點(diǎn)跳轉(zhuǎn)scrollIntoView的案例
這篇文章主要介紹了Vue項(xiàng)目中實(shí)現(xiàn)描點(diǎn)跳轉(zhuǎn)scrollIntoView的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09