???????基于el-table和el-pagination實(shí)現(xiàn)數(shù)據(jù)的分頁(yè)效果流程詳解
一、效果圖

二、方法
第一步,新建一個(gè)el-table,進(jìn)行如下配置,
:data=>是用于動(dòng)態(tài)json數(shù)據(jù)賦值給table,
:header-cell-style=>是設(shè)置表頭的樣式,
stripe=>是讓table具有斑馬背景色,便于觀看。
<el-table :data="tableData"
:header-cell-style="{background:'#eaeaea'}" stripe>
<el-table-column prop="date" label="日期" width="140">
</el-table-column>
<el-table-column prop="name" label="姓名" width="120">
</el-table-column>
<el-table-column prop="job" label="職業(yè)" width="120">
</el-table-column>
<el-table-column prop="address" label="地址">
</el-table-column>
</el-table>第二步,新建一個(gè)el-pagination,
@size-change和@current-change=>處理頁(yè)碼大小和當(dāng)前頁(yè)變動(dòng)時(shí)候觸發(fā)的事件,
:current-page=>當(dāng)前第幾頁(yè)
:page-sizes=>每頁(yè)顯示多少條數(shù)據(jù)的選擇項(xiàng)
:page-size=>每頁(yè)顯示多少條數(shù)據(jù)
layout=>頁(yè)碼布局(一下是完整版)
:total=>數(shù)據(jù)總數(shù)
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="tableData.length">
</el-pagination>第三步,配置展示的數(shù)據(jù)
data () {
return {
currentPage: 1,
pageSize: 10,
tableData: [
{
date: '2016-05-02',
name: '橘右京',
job: '刺客',
address: '上海市普陀區(qū)金沙江路 1518'
},
{
date: '2016-05-15',
name: '魯班大師',
job: '輔助',
address: '上海市普陀區(qū)金沙江路 1516'
}
]
}
}第四步,配置點(diǎn)擊事件
methods: {
// @size-change頁(yè)碼展示數(shù)量點(diǎn)擊事件
handleSizeChange (val) {
// 更新每頁(yè)展示數(shù)據(jù)size
this.pageSize = val
},
// @current-change頁(yè)碼點(diǎn)擊事件
handleCurrentChange (val) {
// 更新當(dāng)前頁(yè)數(shù)是第幾頁(yè)
this.currentPage = val
}
}第五步,這時(shí)候現(xiàn)實(shí)的數(shù)據(jù)是全部顯示的,還需要實(shí)時(shí)修改顯示哪些數(shù)據(jù),修改el-table中的:table,如下即可。
:data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
到了這里就已經(jīng)成功實(shí)現(xiàn)了,以下是完整代碼:
<template>
<div class="block">
<p>共<span style="color: #ffd04b">{{tableData.length}}</span>條數(shù)據(jù)</p>
<el-table :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
:header-cell-style="{background:'#eaeaea'}" stripe>
<el-table-column prop="date" label="日期" width="140">
</el-table-column>
<el-table-column prop="name" label="姓名" width="120">
</el-table-column>
<el-table-column prop="job" label="職業(yè)" width="120">
</el-table-column>
<el-table-column prop="address" label="地址">
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="tableData.length">
</el-pagination>
</div>
</template>
<script>
export default {
name: 'test2',
methods: {
// @size-change頁(yè)碼展示數(shù)量點(diǎn)擊事件
handleSizeChange (val) {
// 更新每頁(yè)展示數(shù)據(jù)size
this.pageSize = val
},
// @current-change頁(yè)碼點(diǎn)擊事件
handleCurrentChange (val) {
// 更新當(dāng)前頁(yè)數(shù)是第幾頁(yè)
this.currentPage = val
}
},
data () {
return {
currentPage: 1,
pageSize: 10,
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'
}
]
}
}
}
</script>到此這篇關(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)文章
CocosCreator入門(mén)教程之網(wǎng)絡(luò)通信
這篇文章主要介紹了CocosCreator的網(wǎng)絡(luò)通信,內(nèi)容不多,涉及到的細(xì)節(jié),讀者可以根據(jù)實(shí)際情況,自己去延申2021-04-04
淺談JavaScript宏任務(wù)和微任務(wù)執(zhí)行順序
本文主要介紹了JavaScript宏任務(wù)和微任務(wù)執(zhí)行順序,結(jié)合實(shí)例代碼進(jìn)行了詳細(xì)的講解,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06
Javascript 實(shí)現(xiàn)全屏滾動(dòng)實(shí)例代碼
這篇文章主要介紹了Javascript 實(shí)現(xiàn)全屏滾動(dòng)實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-12-12
動(dòng)態(tài)加載JavaScript文件的兩種方法
第一種利用ajax方式,第二種是動(dòng)靜創(chuàng)建一個(gè)script標(biāo)簽,配置其src屬性,經(jīng)過(guò)把script標(biāo)簽拔出到頁(yè)面head來(lái)加載js,感樂(lè)趣的網(wǎng)友可以看下2016-04-04
js 根據(jù)對(duì)象數(shù)組中的屬性進(jìn)行排序?qū)崿F(xiàn)代碼
這篇文章主要介紹了js 根據(jù)對(duì)象數(shù)組中的屬性進(jìn)行排序?qū)崿F(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
JavaScript瀏覽器對(duì)象模型BOM(BrowserObjectModel)實(shí)例詳解
這篇文章主要介紹了JavaScript瀏覽器對(duì)象模型BOM(BrowserObjectModel),結(jié)合實(shí)例形式較為詳細(xì)的分析了BOM模型的常用對(duì)象與相關(guān)使用技巧,需要的朋友可以參考下2016-11-11
詳解ES6 擴(kuò)展運(yùn)算符的使用與注意事項(xiàng)
擴(kuò)展運(yùn)算符 (spread syntax) 是 ES6 提供的一種非常便捷的新語(yǔ)法,給我們操作數(shù)組和對(duì)象帶來(lái)了非常大的便利,我在很多文章中也提到了這個(gè)語(yǔ)法。但是其實(shí)擴(kuò)展運(yùn)算符的用法還是比較多比較雜的,我用一篇文章來(lái)做一下總結(jié),梳理一下擴(kuò)展運(yùn)算的語(yǔ)法和使用細(xì)節(jié)。2020-11-11

