???????基于el-table和el-pagination實(shí)現(xiàn)數(shù)據(jù)的分頁(yè)效果
首先使用 el-table(表格) 和 el-pagination(分頁(yè)) 組件需要 npm 下載 Element UI 組件庫(kù),下載安裝方式參見(jiàn)官網(wǎng):https://element.eleme.cn/#/zh-CN/component/installation
一、案例效果

(14 條數(shù)據(jù)每頁(yè)顯示 6 條,共 3 頁(yè)。)
二、實(shí)現(xiàn)步驟&涉及要點(diǎn)
1. el-table 表格存放數(shù)據(jù)
<el-table :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)" stripe
style="width: 100%">
<el-table-column prop="date" label="日期" width="220" align="center"></el-table-column>
<el-table-column prop="name" label="姓名" width="220" align="center"></el-table-column>
<el-table-column prop="job" label="職業(yè)" width="220" align="center"></el-table-column>
<el-table-column prop="address" label="地址" align="center"></el-table-column>
</el-table>| 參數(shù) | 說(shuō)明 |
|---|---|
| data | 顯示的數(shù)據(jù) |
| stripe | 是否以斑馬紋顯示 |
| prop | 對(duì)應(yīng)列內(nèi)容的字段名,也可以使用 property 屬性 |
| label | 顯示的標(biāo)題 |
注意此處在選擇要顯示的數(shù)據(jù)時(shí)也需要對(duì)其進(jìn)行截取操作,否則會(huì)直接全部顯示。我們使用的是 slice(start,end) 截取數(shù)組,其中不包括 end;
:data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
每頁(yè)數(shù)據(jù)量 pageSize 為 6, currentPage 為當(dāng)前頁(yè);比如第一頁(yè),那么截取的就是 0 ~ 6,slice 返回的是數(shù)組副本,所以這個(gè) 0 ~ 6 代表下標(biāo),就有七條數(shù)據(jù),去掉下標(biāo)為 6 的數(shù)據(jù),即為 6 條;后面依次...
2. el-pagination 設(shè)置分頁(yè)效果
<el-pagination
background
layout="prev, pager, next,jumper, ->, total, slot"
:total="tableData.length"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-size="pageSize"
style="text-align: center">
</el-pagination>| 參數(shù) | 說(shuō)明 |
|---|---|
| background | 是否為分頁(yè)按鈕添加背景色 |
| layout | 組件布局,子組件名用逗號(hào)分隔;prev(上一頁(yè)按鈕)、pager(頁(yè)碼)、nex(下一頁(yè)按鈕)、jumper(跳轉(zhuǎn))、->(空格)、total(數(shù)據(jù)總條目數(shù)) |
| current-change | currentPage 改變時(shí)會(huì)觸發(fā) |
| current-page | 當(dāng)前頁(yè)數(shù) |
| page-sizes | 每頁(yè)顯示個(gè)數(shù)選擇器的選項(xiàng)設(shè)置 |
三、完整代碼+詳細(xì)注釋
<template>
<div>
<div class="paging">
<!--數(shù)據(jù)顯示區(qū)域-->
<div class="data">
<!--表格存放數(shù)組中的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行截取,以控制每一頁(yè)顯示的數(shù)據(jù)量-->
<!--slice(start,end) 不包括end-->
<el-table :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)" stripe
style="width: 100%">
<el-table-column prop="date" label="日期" width="220" align="center"></el-table-column>
<el-table-column prop="name" label="姓名" width="220" align="center"></el-table-column>
<el-table-column prop="job" label="職業(yè)" width="220" align="center"></el-table-column>
<el-table-column prop="address" label="地址" align="center"></el-table-column>
</el-table>
</div>
<!--分頁(yè)按鈕-->
<el-pagination
background
layout="prev, pager, next,jumper, ->, total"
:total="tableData.length"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-size="pageSize"
style="text-align: center">
</el-pagination>
</div>
</div>
</template>
<script>
export default {
name: "fenye.vue",
data() {
return {
currentPage: '1', //當(dāng)前頁(yè) 刷新后默認(rèn)顯示第一頁(yè)
pageSize: '6', //每一頁(yè)顯示的數(shù)據(jù)量 此處每頁(yè)顯示6條數(shù)據(jù)
//假數(shù)據(jù)
tableData: [
{
date: '2016-05-02',
name: '橘右京',
job: '刺客',
address: '上海市普陀區(qū)金沙江路 1518'
},
{
date: '2016-05-03',
name: '娜可露露',
job: '刺客',
address: '上海市普陀區(qū)金沙江路 1517'
},
{
date: '2016-05-04',
name: '魯班七號(hào)',
job: '射手',
address: '上海市普陀區(qū)金沙江路 1519'
},
{
date: '2016-05-05',
name: '云中君',
job: '刺客',
address: '上海市普陀區(qū)金沙江路 1516'
},
{
date: '2016-05-06',
name: '干將莫邪',
job: '法師',
address: '上海市普陀區(qū)金沙江路 1516'
},
{
date: '2016-05-07',
name: '不知火舞',
job: '法師',
address: '上海市普陀區(qū)金沙江路 1516'
},
{
date: '2016-05-08',
name: '沈夢(mèng)溪',
job: '法師',
address: '上海市普陀區(qū)金沙江路 1516'
},
{
date: '2016-05-09',
name: '百里守約',
job: '刺客',
address: '上海市普陀區(qū)金沙江路 1516'
},
{
date: '2016-05-10',
name: '馬可波羅',
job: '射手',
address: '上海市普陀區(qū)金沙江路 1516'
},
{
date: '2016-05-11',
name: '孫尚香',
job: '射手',
address: '上海市普陀區(qū)金沙江路 1516'
},
{
date: '2016-05-12',
name: '趙云',
job: '刺客',
address: '上海市普陀區(qū)金沙江路 1516'
},
{
date: '2016-05-13',
name: '鐘無(wú)艷',
job: '戰(zhàn)士',
address: '上海市普陀區(qū)金沙江路 1516'
},
{
date: '2016-05-14',
name: '楊玉環(huán)',
job: '法師',
address: '上海市普陀區(qū)金沙江路 1516'
},
{
date: '2016-05-15',
name: '魯班大師',
job: '輔助',
address: '上海市普陀區(qū)金沙江路 1516'
},
],
}
},
methods: {
//點(diǎn)擊按鈕切換頁(yè)面
handleCurrentChange(currentPage) {
this.currentPage = currentPage; //每次點(diǎn)擊分頁(yè)按鈕,當(dāng)前頁(yè)發(fā)生變化
// console.log(this.currentPage);
},
},
mounted() {
}
}
</script>
<style scoped>
.paging {
width: 1000px;
height: 500px;
margin: 100px auto;
}
.data {
width: 98%;
height: 340px;
border: 2px solid #cccccc;
margin: 10px auto;
text-align: center;
}
</style>到此這篇關(guān)于基于el-table和el-pagination實(shí)現(xiàn)數(shù)據(jù)的分頁(yè)效果的文章就介紹到這了,更多相關(guān)el-table和el-pagination分頁(yè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue2實(shí)現(xiàn)自適應(yīng)屏幕大小的兩種方法詳解
這篇文章主要為大家詳細(xì)介紹了Vue2實(shí)現(xiàn)自適應(yīng)屏幕大小的兩種方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03
Vue.js 2.0 移動(dòng)端拍照壓縮圖片上傳預(yù)覽功能
這篇文章主要介紹了Vue.js 2.0 移動(dòng)端拍照壓縮圖片上傳預(yù)覽功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03
npm install報(bào)錯(cuò)缺少python問(wèn)題及解決
這篇文章主要介紹了npm install報(bào)錯(cuò)缺少python問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
Vite配置路徑別名的簡(jiǎn)單實(shí)現(xiàn)方法
Vite項(xiàng)目中我們可以手動(dòng)將src路徑設(shè)置**@**路徑別名,可以省下很多引入路徑的冗余路徑,下面這篇文章主要給大家介紹了關(guān)于Vite配置路徑別名的簡(jiǎn)單實(shí)現(xiàn)方法,需要的朋友可以參考下2023-04-04
vue3實(shí)現(xiàn)多層級(jí)列表的項(xiàng)目實(shí)踐
本文主要介紹了vue3實(shí)現(xiàn)多層級(jí)列表的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Vue中 v-if 和v-else-if頁(yè)面加載出現(xiàn)閃現(xiàn)的問(wèn)題及解決方法
vue中v-if 和v-else-if在頁(yè)面加載的時(shí)候,不滿足條件的標(biāo)簽會(huì)加載然后再消失掉,如果要解決這個(gè)問(wèn)題,下面小編給大家?guī)?lái)了實(shí)例代碼,需要的朋友參考下吧2018-10-10
vue實(shí)現(xiàn)自定義日期組件功能的實(shí)例代碼
這篇文章主要介紹了vue自定義日期組件的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11

