vue實現(xiàn)簡單的分頁功能
前端Vue實現(xiàn)分頁功能,供大家參考,具體內(nèi)容如下
我們都知道在spring boot項目中安裝pagehelper可以實現(xiàn)分頁功能,但是在vue中也能在前端實現(xiàn)分頁。
1、首先,在data中定義以下變量:
data() { ? ? return { ? ? ? list: null, ? ? ? listLoading: true, ? ? ? totalPage: 1, // 統(tǒng)共頁數(shù),默認(rèn)為1 ?? ??? ??? ?currentPage: 1, //當(dāng)前頁數(shù) ,默認(rèn)為1 ?? ??? ??? ?pageSize: 5, // 每頁顯示數(shù)量 ? ? ? currentPageData: [], //當(dāng)前頁顯示內(nèi)容 ? ? ? headPage: 1 ? ? } ? },
2、發(fā)送請求,獲取后端數(shù)據(jù)(list集合)
axios.get('http://192.168.56.1:8081/sel/'+id).then((res) =>{ ? ? ? ? console.log(res.data.data )? ? ? ? ? that.list = res.data.data? ? ? ? ? that.listLoading = false
3、根據(jù)返回數(shù)據(jù)list的length來計算data中變量的值:
this.totalPage=Math.ceil(this.list.length / this.pageSize); ? ? ? ? this.totalPage = this.totalPage == 0 ? 1 : this.totalPage; ? ? ? ? this.getCurrentPageData();
4、調(diào)用getCurrentPageData()方法設(shè)置當(dāng)前頁面的數(shù)據(jù)
getCurrentPageData() { ?? ??? ??? ? ? ? ? ? ? ?let begin = (this.currentPage - 1) * this.pageSize; ?? ??? ??? ? ? ? ? ? ? ?let end = this.currentPage * this.pageSize; ?? ??? ??? ? ? ? ? ? ? ?this.currentPageData = this.list.slice( ?? ??? ??? ? ? ? ? ? ? ? ? ?begin, ?? ??? ??? ? ? ? ? ? ? ? ? ?end ?? ??? ??? ? ? ? ? ? ? ?); ?? ??? ??? ? ? ? ? ?},
5、添加按鈕并實現(xiàn)首頁、尾頁、上一頁、下一頁功能:
<input type="button" value="首頁" @click="firstPage"> <input type="button" value="上一頁" @click="prevPage"> <input type="button" value="下一頁" @click="nextPage"> <input type="button" value="尾頁" @click="lastPage">
?//上一頁 prevPage() { ?? ??? ??? ? ? ? ? ? ? ?? ??? ???if (this.currentPage == 1) { ?? ??? ??? ? ?? ?return false; ?? ??? ??? ??} else { ?? ??? ??? ? ? ? this.currentPage--; ?? ??? ??? ? ? ? this.getCurrentPageData(); ?? ??? ??? ? ? ?} ?? ??? ??? ? ? ? ? ?}, ?? ??? ??? ? ? ? ? ?// 下一頁 ?? ??? ??? ? ? ? ? ?nextPage() { ?? ??? ??? ? ? ? ? ? ? ?if (this.currentPage == this.totalPage) { ?? ??? ??? ? ? ? ? ? ? ? ? ?return false; ?? ??? ??? ? ? ? ? ? ? ?} else { ?? ??? ??? ? ? ? ? ? ? ? ? ?this.currentPage++; ?? ??? ??? ? ? ? ? ? ? ? ? ?this.getCurrentPageData(); ?? ??? ??? ? ? ? ? ? ? ?} ? ? ? ? ? ? ? }, ? ? ? ? ? ? ? //尾頁 ? ? ? ? ? ? ? lastPage() { ?? ??? ??? ? ? if (this.currentPage == this.totalPage) { ?? ??? ??? ? ? ? ? ??return false; ?? ??? ??? ? ? ? ? ? ? ?} else { ?? ??? ??? ? ? ? ? ??this.currentPage=this.totalPage; ?? ??? ??? ? ? ? ? ? this.getCurrentPageData(); ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? } , ? ? ? ? ? ?//首頁 ? ? ? ? ? ? ? firstPage(){ ? ? ? ? ? ? this.currentPage= ?this.headPage; ? ? ? ? ? ? this.getCurrentPageData(); }
注意!
最后需要修改組件中的data
前端展示:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue v-for中:key中item.id與Index使用的區(qū)別解析
這篇文章主要介紹了Vue v-for中:key中item.id與Index使用的區(qū)別解析,推薦使用【:key="item.id"】而不是將數(shù)組下標(biāo)當(dāng)做唯一標(biāo)識,前者能做到全部復(fù)用,本文給大家詳細(xì)講解,感興趣的朋友跟隨小編一起看看吧2024-02-02Vue+Openlayer實現(xiàn)圖形的拖動和旋轉(zhuǎn)變形效果
Openlayer具有自己的擴展插件ol-ext,可以用來實現(xiàn)圖形的拖拽、旋轉(zhuǎn)、縮放、拉伸、移動等操作,本文將主要介紹通過Openlayer實現(xiàn)圖形的拖動和旋轉(zhuǎn),需要的同學(xué)可以學(xué)習(xí)一下2021-11-11vue3+ElementPlus使用lang="ts"報Unexpected?token錯誤的解決
最近開發(fā)中遇到了些問題,跟大家分享下,這篇文章主要給大家介紹了關(guān)于vue3+ElementPlus使用lang="ts"報Unexpected?token錯誤的解決辦法,需要的朋友可以參考下2023-01-01基于Vue、Vuex、Vue-router實現(xiàn)的購物商城(原生切換動畫)效果
這篇文章主要介紹了基于Vue、Vuex、Vue-router實現(xiàn)的購物商城(原生切換動畫)效果,需要的朋友可以參考下2018-01-01在vue中使用防抖和節(jié)流,防止重復(fù)點擊或重復(fù)上拉加載實例
今天小編就為大家分享一篇在vue中使用防抖和節(jié)流,防止重復(fù)點擊或重復(fù)上拉加載實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11vue3封裝AES(CryptoJS)前端加密解密通信代碼實現(xiàn)
防止數(shù)據(jù)被爬取,前后端傳參接收參數(shù)需要加密處理,使用AES加密,這篇文章主要給大家介紹了關(guān)于vue3封裝AES(CryptoJS)前端加密解密通信代碼實現(xiàn)的相關(guān)資料,需要的朋友可以參考下2023-12-12