Element UI是一套基于Vue的組件庫,包含了豐富的UI組件,同時也提供了很多實用的功能組件,其中包括分頁組件。Vue分頁組件可以快速地生成一個分頁欄,讓用戶更方便地操作數(shù)據(jù),同時保證了數(shù)據(jù)量過多時的性能,我們可以通過Element UI Vue分頁組件來實現(xiàn)這個功能。
在使用Element UI Vue分頁組件之前,我們需要先導入Element UI組件庫,并添加CSS文件。
import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
接下來,在Vue組件中,我們需要定義一個頁碼列表,一個當前頁碼,一個總頁碼數(shù),一個每頁數(shù)據(jù)條數(shù),一個數(shù)據(jù)總量,以及一個分頁欄大小。
data() {
return {
currentPage: 1,
pageSize: 10,
total: 1000,
pageCount: 0,
pageSizes: [10, 20, 50, 100],
}
}
currentPage表示當前頁碼,pageSize表示每頁數(shù)據(jù)條數(shù),total表示數(shù)據(jù)總量,pageCount表示總頁碼數(shù),pageSizes表示可選分頁欄大小。在獲取數(shù)據(jù)時,我們首先需要計算數(shù)據(jù)的總頁碼數(shù):
computed: {
pageCount() {
return Math.ceil(this.total / this.pageSize);
}
}
接下來,我們就可以使用Element UI的分頁組件了。在模板中,我們需要將總頁碼數(shù)、當前頁碼以及每頁數(shù)據(jù)條數(shù)傳遞給分頁組件,并監(jiān)聽分頁事件。
<el-pagination
:page-sizes="pageSizes"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
:current-page.sync="currentPage"
@size-change="handleSizeChange"
@current-change="handleCurrentChange">
</el-pagination>
其中,layout屬性表示分頁欄內(nèi)組件的排列方式,total表示總數(shù)據(jù)量的顯示文本,sizes表示每頁數(shù)據(jù)條數(shù)選擇器的顯示文本,prev表示前一頁按鈕的顯示文本,pager表示頁碼按鈕的顯示方式,next表示后一頁按鈕的顯示文本,jumper表示跳轉(zhuǎn)組件的顯示文本。
current-page.sync表示當前頁碼的雙向綁定,handleSizeChange表示分頁欄大小變化的回調(diào)函數(shù),handleCurrentChange表示頁碼變化的回調(diào)函數(shù)。
最后,我們需要在回調(diào)函數(shù)中處理獲取數(shù)據(jù)的邏輯,例如:
handleCurrentChange(val) {
console.log(`當前頁: ${val}`);
// 發(fā)送 API 請求,獲取當前頁碼對應的數(shù)據(jù)
},
handleSizeChange(val) {
console.log(`分頁欄大小變?yōu)? ${val}`);
this.pageSize = val;
// 發(fā)送 API 請求,重新渲染數(shù)據(jù)
}
通過這樣的實現(xiàn),我們就可以使用Element UI Vue分頁組件來方便地進行分頁操作了。