摘要:分頁組件通過來接受從父組件傳遞過來的值頁面中的可見頁碼,其他的以替代必須是奇數(shù)當(dāng)前頁碼每頁顯示條數(shù)總記錄數(shù)父組件通過方
分頁組件
- prev
- first
- ...
- {{ pager }}
- ...
- last
- next
export default { name : "MoPaging", //通過props來接受從父組件傳遞過來的值 props : { //頁面中的可見頁碼,其他的以...替代, 必須是奇數(shù) perPages : { type : Number, default : 5 }, //當(dāng)前頁碼 pageIndex : { type : Number, default : 1 }, //每頁顯示條數(shù) pageSize : { type : Number, default : 10 }, //總記錄數(shù) total : { type : Number, default : 1 }, }, methods : { prev(){ if (this.index > 1) { this.go(this.index - 1) } }, next(){ if (this.index < this.pages) { this.go(this.index + 1) } }, first(){ if (this.index !== 1) { this.go(1) } }, last(){ if (this.index != this.pages) { this.go(this.pages) } }, go (page) { if (this.index !== page) { this.index = page //父組件通過change方法來接受當(dāng)前的頁碼 this.$emit("change", this.index) } } }, computed : { //計算總頁碼 pages(){ return Math.ceil(this.size / this.limit) }, //計算頁碼,當(dāng)count等變化時自動計算 pagers () { const array = [] const perPages = this.perPages const pageCount = this.pages let current = this.index const _offset = (perPages - 1) / 2 const offset = { start : current - _offset, end : current + _offset } //-1, 3 if (offset.start < 1) { offset.end = offset.end + (1 - offset.start) offset.start = 1 } if (offset.end > pageCount) { offset.start = offset.start - (offset.end - pageCount) offset.end = pageCount } if (offset.start < 1) offset.start = 1 this.showPrevMore = (offset.start > 1) this.showNextMore = (offset.end < pageCount) for (let i = offset.start; i <= offset.end; i++) { array.push(i) } return array } }, data () { return { index : this.pageIndex, //當(dāng)前頁碼 limit : this.pageSize, //每頁顯示條數(shù) size : this.total || 1, //總記錄數(shù) showPrevMore : false, showNextMore : false } }, watch : { pageIndex(val) { this.index = val || 1 }, pageSize(val) { this.limit = val || 10 }, total(val) { this.size = val || 1 } } }
父組件使用
- ...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/51948.html
摘要:項目中遇到切換列表,每個都需要分頁的需求,分頁流程具有相似性,于是想將分頁封裝為組件,方便應(yīng)用。組件的復(fù)用完成了以上組件,在對其他分頁的頁面,可以直接復(fù)用。 項目中遇到 tab切換列表,每個tab都需要分頁的需求,分頁流程具有相似性,于是想將分頁封裝為組件,方便應(yīng)用。 組件的應(yīng)用已寫成一個小demo,效果如下圖所示(數(shù)據(jù)用mock模擬): showImg(https://segment...
摘要:所以這就導(dǎo)致,頁面內(nèi)容正確,但是頁碼高亮依舊是第一頁解決辦法我們需要在之后刷新這個分頁組件或者讓分頁組件的后于之后加載到頁面。然后再次測試,發(fā)現(xiàn)完美解決問題。 問題描述 當(dāng)前頁面如下showImg(https://segmentfault.com/img/bVbjJ7a); 然后點擊頁碼跳到第3頁,然后在第三頁點擊頁面鏈接跳轉(zhuǎn)到新的頁面showImg(https://segmentfa...
摘要:的分頁組件默認(rèn)為的分頁樣式,但如果我們用的并不是或者說分頁的結(jié)構(gòu)不一樣,這時我們需要自定義分頁。進(jìn)一步,可以看到通過繼承并對方法進(jìn)行重寫,由此可見,我們可以通過繼承類并對方法進(jìn)行重寫,就可以自定義分頁的樣式了。 ????????Laravel 的分頁組件默認(rèn)為 Bootstrap 的分頁樣式,但如果我們用的并不是 Bootstrap 或者說分頁的 HTML結(jié)構(gòu)不一樣,這時我們需要自定義...
摘要:第九集從零開始實現(xiàn)分頁器組件本集定位分頁器這個組件也算是個老朋友了還記得剛學(xué)的時候?qū)憘€分頁器要行代碼要是能穿越回去我得好好教教我自己設(shè)計模式 第九集: 從零開始實現(xiàn)( 分頁器組件 ) 本集定位: 分頁器這個組件也算是個老朋友了, 還記得剛學(xué)js的時候, 寫個分頁器要300行代碼,要是能穿越回去, 我得好好教教我自己設(shè)計模式
摘要:第九集從零開始實現(xiàn)分頁器組件本集定位分頁器這個組件也算是個老朋友了還記得剛學(xué)的時候?qū)憘€分頁器要行代碼要是能穿越回去我得好好教教我自己設(shè)計模式 第九集: 從零開始實現(xiàn)( 分頁器組件 ) 本集定位: 分頁器這個組件也算是個老朋友了, 還記得剛學(xué)js的時候, 寫個分頁器要300行代碼,要是能穿越回去, 我得好好教教我自己設(shè)計模式
閱讀 1525·2021-08-09 13:47
閱讀 2783·2019-08-30 15:55
閱讀 3509·2019-08-29 15:42
閱讀 1128·2019-08-29 13:45
閱讀 3022·2019-08-29 12:33
閱讀 1755·2019-08-26 11:58
閱讀 997·2019-08-26 10:19
閱讀 2425·2019-08-23 18:00