亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

vue實現分頁欄效果

2019-11-19 11:15:07
字體:
來源:轉載
供稿:網友

本文實例為大家分享了vue實現分頁欄效果的具體代碼,供大家參考,具體內容如下

當我們在獲取后臺數據時,特別是獲取大量的列表數據時,頁面內能展示的數據不能過多,不然讓用戶看起來很疲憊,體驗度不高。這個時候就需要分頁欄來實現指定的數據顯示在頁面上,然后用戶點擊指定頁面或者點擊上一頁、下一頁再或者輸入指定的數據跳轉到指定的頁面數據的功能都能實現,所以分頁欄的設計與實現是十分有必要的。

下面來詳細介紹下分頁欄設計的步驟與實現。

1.設計的前提條件:

必須成功獲取到后臺數據,而且獲取到的數據類型是一個數組,我們暫且用res.data.musicLists表示后臺返回的數據。

另外如果后臺開發師專業的話,他會把顯示數據的總個數,當前頁,每頁有多少條,總頁數也一起返回回來,我們暫且用res.data.paging來表示后臺返回的這些字段的值。

下面我貼出代碼來直觀表示:

{ data:{ list:[ {user_id:1,nickName:'csdn1',sex:0,desc:'帥哥'}, {user_id:2,nickName:'csdn2',sex:0,desc:'帥哥'}, {user_id:3,nickName:'csdn3',sex:1,desc:'美女'}, ... ], pageInfo:{ totalItem:44, totalPage:3, perPage:15, curPage:1 } }}

然后是將后臺返回的數據進行處理,如下代碼所示:

 // get請求獲取用戶數據函數 getRequestFunc: function(formData, requestUrl){ var that = this; $.get( requestUrl,//請求數據路徑,即接口 formData,//請求數據參數,除了必需的參數,還有page這個非必須的參數,它的作用是獲取當前頁的數據列表。例如:page=10時,獲取的是第十頁的數據 res => { that.personLists = res.data.list;//用戶數據列表 that.pageInfo = res.data.pageInfo;//這個數據里面包括:當前頁、總頁數、當前頁數目等 that.curPage = res.data.paging.curPage;//當前頁 that.totalPage = res.data.paging.totalPage;//總頁數 //用于處理顯示分頁欄信息 that.handlePageBar(that.totalPage)  }); },

那么直觀一點,我就是要顯示這種分頁欄,有“上一頁”、“下一頁”、“首頁”、“尾頁”、“前十頁”、“后十頁”和輸入指定數字后跳轉到具體第幾頁功能。如下圖:

2.分頁欄的設計已完成,那么接下來實現交互邏輯。

因為我們每頁要顯示15條數據,在超過150條數據后,分頁欄最多顯示10個子頁欄,要想獲知另外的數據,要么點擊省略號加載下十頁的內容,要么輸入指定數字跳轉,因此可以這樣實現。

看代碼:

// 處理分頁欄 handlePageBar: function(pageNum){ var that = this; if(that.pageArr == '' || that.pageArr == null){ var pageArr = []; if(pageNum > 10){ for(var i = 1; i < 11; i++){ pageArr.push(i); } }else{ for(var i = 1; i < pageNum + 1; i++){ pageArr.push(i); } } that.pageArr = pageArr; }else if(that.pageArr.length < 10){ that.pageArr = pageArr; }else{ if((that.pageArr)[9] == that.page-1){ that.handleNextExtremePage(pageNum); }else if((that.pageArr)[0] == parseInt(that.page)+1){ that.handlePreExtremePage(pageNum); } } }, ​ // 處理點擊尾數為0跳轉到下一頁面時的分頁欄顯示 handleNextExtremePage: function(pageNum){ var that = this; that.addNum += 10; var pageArr = []; if(pageNum > that.addNum && pageNum < that.addNum+10){ for(var i = that.addNum + 1; i < pageNum + 1; i++){ pageArr.push(i); } }else{ var pageArr = []; for(var i = that.addNum + 1; i < that.addNum + 11; i++){ pageArr.push(i); } } that.pageArr = pageArr; },  // 處理點擊尾數為1跳轉到上一頁面時的分頁欄顯示 handlePreExtremePage: function(pageNum){ var that = this; that.addNum -= 10; var pageArr = []; if(that.addNum >= 0){ for(var i = that.addNum + 1; i < that.addNum + 11; i++){ pageArr.push(i); } } that.pageArr = pageArr; },

HTML代碼:

​<div class="contentBottom"> <span>共{{pageInfo.totalItem}}條,共{{pageInfo.totalPage}}頁,當前頁{{personLists.length}}條</span> <span class="indexPage" @click="goToIndexPage">首頁</span> <span class="prePage" @click="goToPrePage"><</span> <span class="preTen" v-show="pageArr[0] > 10 ? true : false" @click="preTen">...</span> <span class="knownPage" :class="{'addBgClass': index == curPage}" v-for="index in pageArr" @click="appointPage" :data-curPage="index">{{index}}</span> <span class="nextTen" v-show="pageArr.length < 10 ? false : true" @click="nextTen">...</span> <span class="nextPage" @click="goToNextPage">></span> <span class="lastPage" @click="goToLastPage">尾頁</span> <input type="text" class="inputPage" ref="inputPage" v-show="totalPage > 10 ? true : false" /> <span class="jumpToInputPage" @click="jumpToInputPage" v-show="totalPage > 10 ? true : false">跳轉</span></div>

CSS代碼:

​.contentBottom{ width: 98%; height: 30px; line-height: 30px; text-align: right; margin-top: 50px; padding: 0 1%; font-size: 14px; }  .prePage,.knownPage,.nextPage,.nextTen,.preTen,.indexPage,.lastPage,.jumpToInputPage{ width: 30px; display: inline-block; text-align: center; border: 1px solid #CCC; cursor: pointer; }  .indexPage,.lastPage,.jumpToInputPage{ font-size: 14px; padding: 0 8px; }  .inputPage{ width: 36px; height: 27.5px; vertical-align: top; }  .indexPage,.inputPage{ margin-left: 10px; }  .prePage:hover,.knownPage:hover,.nextPage:hover,.preTen:hover,.nextTen:hover,.indexPage:hover,.lastPage:hover,.jumpToInputPage:hover{ background: rgba(230,230,230,1) } ​ .addBgClass{ background: rgba(230,230,230,1); }

用戶交互邏輯代碼:

// 顯示后十頁。只有在page大于10時這個擴充按鈕才會顯示 nextTen: function(){ var that = this; var pageNum = that.totalPage; that.handleNextExtremePage(pageNum); },  // 顯示前十頁 preTen: function(){ var that = this; var pageNum = that.totalPage; that.handlePreExtremePage(pageNum); },  // 拉取指定頁的碼庫數據 appointPage: function(e){ var page = e.target.dataset.curPage; this.curPage = page; var formData = { user_id: this.user_id, nickName: this.nickName, page: page }; this.getRequestFunc(formData); },  // 拉取上一頁碼庫數據 goToPrePage: function(){ var that = this; that.curPage = parseInt(that.curPage) - 1; if(that.curPage < 1){ that.curPage = that.curPage + 1; //下面用的是一個模態框,可不寫 var promptText = '這已經是第一頁了!'; that.callPromptBox(promptText) }else{ var formData = { user_id: this.user_id, nickName: this.nickName, page: that.curPage }; that.getRequestFunc(formData); } },  // 拉取下一頁碼庫數據 goToNextPage: function(){ var that = this; that.curPage = parseInt(that.curPage ) + 1; if(that.curPage > that.totalPage){ that.curPage = that.curPage - 1; var promptText = '這已經是最后一頁了!'; that.callPromptBox(promptText) }else{ var formData = { user_id: this.user_id, nickName: this.nickName, page: that.curPage }; that.getRequestFunc(formData); } },  // 直接跳轉到首頁,即第一頁 goToIndexPage: function(){ var that = this; if(that.curPage== 1){ var promptText = '這已經是第一頁了!'; that.callPromptBox(promptText) }else{ that.curPage= 1; var formData = { user_id: this.user_id, nickName: this.nickName, page: that.curPage }; that.getRequestFunc(formData); } },  // 直接跳轉到尾頁 goToLastPage: function(){ var that = this; if(that.curPage== that.totalPage){ var promptText = '這已經是最后一頁了!'; that.callPromptBox(promptText) }else{ that.curPage= that.totalPage; var formData = { user_id: this.user_id, nickName: this.nickName, page: that.curPage }; that.getRequestFunc(formData); } }, ​

好了,做完了,大家可復制代碼去查看效果,數據可以自己寫死,然后去測試。

當然了,我的代碼肯定有瑕疵,所以大家在測試的時候,自己覺得有優化的地方可以去嘗試優化下,讓代碼更精簡,魯棒性更強。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久九九有精品国产23| 欧美激情亚洲一区| 成人福利视频网| 色综合色综合网色综合| 国产精品一区二区三区毛片淫片| 亚洲大胆人体av| 国产中文字幕日韩| 成人一区二区电影| 精品美女久久久久久免费| 久久久国产精品免费| 精品欧美一区二区三区| 亚洲乱码一区二区| 免费不卡在线观看av| 亚洲成人免费网站| 国产精品一久久香蕉国产线看观看| 自拍亚洲一区欧美另类| 国产精品日韩精品| 国产亚洲欧美日韩一区二区| 亚洲sss综合天堂久久| 成人激情视频网| 亚洲成人国产精品| 18一19gay欧美视频网站| 久久久久久久一区二区| 久久伊人精品天天| 国产91精品久| 亚洲精品国产综合区久久久久久久| 亚洲日本中文字幕| 亚洲欧美国产精品va在线观看| 国内精久久久久久久久久人| 亚洲激情电影中文字幕| 国产精品毛片a∨一区二区三区|国| 国产精品自产拍高潮在线观看| 中文字幕亚洲天堂| 国产精品欧美亚洲777777| 国产999精品久久久影片官网| 国产午夜一区二区| 91手机视频在线观看| 亚洲综合小说区| 欧美高跟鞋交xxxxhd| 成人国产精品免费视频| 国内外成人免费激情在线视频网站| 日韩精品中文字幕在线观看| 91po在线观看91精品国产性色| 久久精品国产一区二区三区| 日韩美女在线播放| 日韩av在线最新| 欧美极品美女视频网站在线观看免费| 欧美麻豆久久久久久中文| 久久久国产精品免费| 国产精品久久久久久久久久东京| 国产视频久久久久久久| 国产精品久久77777| 国产精品久久久久久久午夜| 亚州国产精品久久久| 精品爽片免费看久久| 91免费在线视频| 久久久国产精品免费| 成人免费视频网| 亚洲男人av在线| xx视频.9999.com| 国产精品视频一区二区高潮| 久久香蕉国产线看观看av| 孩xxxx性bbbb欧美| 亚洲精品国精品久久99热| 992tv在线成人免费观看| 青青草原成人在线视频| 久久影视电视剧免费网站清宫辞电视| 98午夜经典影视| 成人黄色网免费| 国产精品第一区| 成人黄色免费在线观看| 97免费在线视频| 青青青国产精品一区二区| 7777免费精品视频| 夜夜嗨av一区二区三区四区| 欧美老少做受xxxx高潮| 欧美第一黄色网| 日韩av网址在线| 在线亚洲欧美视频| 中文日韩在线观看| 国产精品永久免费观看| 性欧美激情精品| 伊人久久免费视频| 色婷婷亚洲mv天堂mv在影片| 国产精品免费一区二区三区都可以| 欧美理论电影在线播放| 97人人模人人爽人人喊中文字| 中日韩美女免费视频网址在线观看| 在线不卡国产精品| 亚洲欧洲偷拍精品| 精品福利一区二区| 欧美成年人视频网站欧美| 日本一区二三区好的精华液| 日韩精品在线免费观看| 日日狠狠久久偷偷四色综合免费| 久久99久久久久久久噜噜| 精品久久久久久久中文字幕| 91免费高清视频| 成人一区二区电影| 日韩精品小视频| 亚洲精品免费一区二区三区| 国产精品成人aaaaa网站| 精品福利免费观看| 亚洲精品一区二区久| 久久综合久久八八| 亚洲一区亚洲二区| 欧美精品久久一区二区| 色综合久久88色综合天天看泰| 国产精品美乳在线观看| 久久久久久久久久久人体| 国产精品第3页| 亚洲国产精久久久久久| 亚洲精品福利视频| 欧美激情图片区| 欧美亚洲成人免费| 欧美综合国产精品久久丁香| 精品国产欧美成人夜夜嗨| 欧美日韩激情视频| 欧美一区三区三区高中清蜜桃| 日韩中文字幕在线精品| 欧美一级淫片播放口| 亚洲精品福利在线观看| 亚洲va欧美va国产综合剧情| 91精品久久久久久久久久另类| 午夜精品视频在线| 国产999精品视频| 亚洲无av在线中文字幕| 国语自产精品视频在线看一大j8| 最近中文字幕mv在线一区二区三区四区| 97婷婷大伊香蕉精品视频| 亚洲欧美色婷婷| 亲子乱一区二区三区电影| 国产精品第七十二页| 日本韩国欧美精品大片卡二| 久久99亚洲精品| 亚洲一区999| 亚洲一区二区福利| 国产精品成人品| 欧美午夜性色大片在线观看| 久久久视频精品| 亚洲性夜色噜噜噜7777| 欧美视频中文在线看| 欧美疯狂性受xxxxx另类| 久久久久久久国产| 日韩电影大片中文字幕| 91精品国产成人www| 欧美一区二区三区免费视| 久久久人成影片一区二区三区| 亚洲视屏在线播放| 欧美夫妻性生活xx| 国产激情久久久| 成人a视频在线观看| 在线播放日韩专区| 日韩美女视频免费在线观看| 日韩影视在线观看| 2019日本中文字幕| 色先锋久久影院av| 国内自拍欧美激情| 日韩不卡中文字幕| 国产一级揄自揄精品视频| 国模精品视频一区二区三区| 国产精品久久久久久久久借妻| 欧美日韩中文字幕在线| 久久精品视频免费播放|