???????基于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)文章
JS定時(shí)器實(shí)現(xiàn)數(shù)值從0到10來(lái)回變化
最近做項(xiàng)目遇到一需求要求實(shí)現(xiàn)數(shù)值從0到10來(lái)回變化,下面小編給大家分享下實(shí)現(xiàn)代碼,需要的朋友參考下2016-12-12javascript完美拖拽的實(shí)現(xiàn)方法
這篇文章介紹了javascript完美拖拽的實(shí)現(xiàn)方法,有需要的朋友可以參考一下2013-09-09DOM_window對(duì)象屬性之--clipboardData對(duì)象操作代碼
clipboardData 對(duì)象提供了對(duì)于預(yù)定義的剪貼板格式的訪(fǎng)問(wèn),以便在編輯操作中使用。2011-02-02Javascript中扁平化數(shù)據(jù)結(jié)構(gòu)與JSON樹(shù)形結(jié)構(gòu)轉(zhuǎn)換詳解
之前朋友問(wèn)過(guò)我一個(gè)問(wèn)題,項(xiàng)目中遇到扁平化數(shù)據(jù)結(jié)構(gòu)不知如何樹(shù)形化,下面這篇文章主要給大家介紹了關(guān)于Javascript中扁平化數(shù)據(jù)結(jié)構(gòu)與JSON樹(shù)形結(jié)構(gòu)轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下2022-05-05小程序統(tǒng)計(jì)來(lái)源信息的方案與具體代碼
微信小程序數(shù)據(jù)統(tǒng)計(jì),現(xiàn)在有很多的統(tǒng)計(jì)方法和統(tǒng)計(jì)工具,下面這篇文章主要給大家介紹了關(guān)于小程序統(tǒng)計(jì)來(lái)源信息的方案與具體代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09JavaScript基礎(chǔ)之運(yùn)算符與表達(dá)式詳解
這篇文章主要為大家詳細(xì)介紹了JavaScript中一些常見(jiàn)的運(yùn)算符與表達(dá)式的具體使用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-04-04Angularjs結(jié)合Bootstrap制作的一個(gè)TODO List
這篇文章主要介紹了Angularjs結(jié)合Bootstrap制作的一個(gè)TODO List 的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-08-08