ant design Vue 純前端實(shí)現(xiàn)分頁(yè)問(wèn)題
ant design Vue純前端實(shí)現(xiàn)分頁(yè)功能
(有選擇的話最好讓后端分頁(yè),前端分頁(yè)可能會(huì)有問(wèn)題,為了性能,盡量不要前端分頁(yè))
自己想的一個(gè)簡(jiǎn)單方法
通過(guò)頁(yè)碼改變事件,每頁(yè)數(shù)據(jù)個(gè)數(shù)改變事件,獲取改變后的頁(yè)碼,每頁(yè)條數(shù),獲取數(shù)組中對(duì)應(yīng)的數(shù)據(jù)。
代碼如下:
html:
<template>
? <div>
? ? <h3>學(xué)習(xí)文件</h3>
? ? <div class="videoMain" v-if="dataSourceList.length">
? ? ? <div class="videoBox" v-for="item in dataSourceList" :key="item.index">
? ? ? ? <a-tooltip placement="top">
? ? ? ? ? <template slot="title">
? ? ? ? ? ? {{item.name}}
? ? ? ? ? </template>
? ? ? ? ? <a class="ellipsis" :href="item.VUrl" rel="external nofollow" >{{item.name}}</a>
? ? ? ? </a-tooltip>
? ? ? </div>
? ? </div>
? ? <!-- 分頁(yè) -->
? ? <div style="margin-top: 20px;" v-if="dataSourceList.length">
? ? ?<a-pagination size="small"?
? ? ? ? :total="ipagination.total"?
? ? ? ? v-model="ipagination.current"
? ? ? ? show-size-changer?
? ? ? ? show-quick-jumper?
? ? ? ? :page-size-options="ipagination.pageSizeOptions"
? ? ? ? :page-size="ipagination.pageSize"
? ? ? ? @change="pageChange"
? ? ? ? @showSizeChange="onShowSizeChange"
? ? ? ? :show-total="ipagination.showTotal" />
? ? </div>
? ? <div class="nullError" v-else>
? ? ? <p>暫無(wú)文件</p>
? ? </div>
? </div>
</template>data:
data() {
? ? ? return {
? ? ? ? description: '文件列表組件',
? ? ? ? dataSource:[], //獲取的數(shù)據(jù)
? ? ? ? dataSourceList:[],//分頁(yè)后的數(shù)據(jù)
? ? ? ? /* 分頁(yè)參數(shù) */
? ? ? ? ipagination:{
? ? ? ? ? current: 1,//當(dāng)前頁(yè)數(shù)
? ? ? ? ? pageSize: 6,
? ? ? ? ? pageSizeOptions: ['6', '10','20','30', '50'],
? ? ? ? ? showTotal: (total, range) => {
? ? ? ? ? ? return range[0] + "-" + range[1] + " 共" + total + "條"
? ? ? ? ? },
? ? ? ? ? showQuickJumper: true,
? ? ? ? ? showSizeChanger: true,
? ? ? ? ? total: 0
? ? ? ? },
? ? ? };
? ? },獲取數(shù)據(jù):
created() {
?? ?this.loadData(); ///獲取數(shù)據(jù)的方法
},methods:
loadData(){
? ? ? ? getAction(this.URL).then((res)=>{
? ? ? ? ? if(res.success){
? ? ? ? ? ? this.dataSource = res.result.records;
? ? ? ? ? }else{
? ? ? ? ? ? this.$message.error(res.message)
? ? ? ? ? }
? ? ? ? }).finally(()=>{
? ? ? ? //獲取數(shù)據(jù)后調(diào)用一次分頁(yè)方法
? ? ? ? ? this.changeData(param.current,param.pageSize);//獲取數(shù)據(jù)后調(diào)用一次分頁(yè)方法
? ? ? ? })
? ? ? },
? ? ? // 頁(yè)碼改變的回調(diào),參數(shù)是改變后的頁(yè)碼及每頁(yè)條數(shù)
? ? ? pageChange(page,pageSize){
? ? ? ? this.changeData(page,pageSize);
? ? ? },
? ? ? // 下拉選項(xiàng)改變, 參數(shù)是改變后的頁(yè)碼及每頁(yè)條數(shù)
? ? ? onShowSizeChange(current, pageSize) {
? ? ? ? this.ipagination.pageSize = pageSize;
? ? ? ? this.changeData(current,pageSize);
? ? ? },
? ? ? // 分頁(yè)改變時(shí),獲取對(duì)應(yīng)的數(shù)據(jù),動(dòng)態(tài)改變數(shù)據(jù)
? ? ? changeData(page,pageSize){
? ? ? ? var p = (page - 1)*pageSize;
? ? ? ? var pSize = page*pageSize;
? ? ? ? var dataSourceList = [];
? ? ? ? this.dataSource.forEach((item,index)=>{
? ? ? ? ? if(p<= index && index< pSize){
? ? ? ? ? ? dataSourceList.push(item)
? ? ? ? ? }
? ? ? ? })
? ? ? ? this.dataSourceList = dataSourceList;
? ? ? }主要是后面幾個(gè)方法,changeData是改變的具體方法。
方式二
用computed 屬性計(jì)算
? computed: {
? ? TableData() {
? ? ? return this.teacherList.slice(
? ? ? ? (this.pagination.page - 1) * this.pagination.limit,
? ? ? ? this.pagination.page * this.pagination.limit
? ? ? );
? ? },
? },ant design vue中分頁(yè)器的使用注意事項(xiàng)
1. 輸入defaultPageSize: '5',pageSizeOptions: ['5', '10', '15', '20']等時(shí),需要是String的形式,否則只會(huì)展示具體數(shù)字,而不是以5條/頁(yè)的形式

正確樣式

錯(cuò)誤樣式
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue3使用quill富文本編輯器保姆級(jí)教程(附踩坑解決)
這篇文章主要給大家介紹了關(guān)于vue3使用quill富文本編輯器保姆級(jí)教程的相關(guān)資料,在許多網(wǎng)站和應(yīng)用程序中富文本編輯器是一種常見(jiàn)的工具,它使用戶能夠以直觀的方式創(chuàng)建和編輯文本內(nèi)容,需要的朋友可以參考下2023-11-11
基于Vue實(shí)現(xiàn)簡(jiǎn)單的權(quán)限控制
這篇文章主要為大家學(xué)習(xí)介紹了如何基于Vue實(shí)現(xiàn)簡(jiǎn)單的權(quán)限控制,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,需要的小伙伴可以了解一下2023-07-07
vue計(jì)算屬性時(shí)v-for處理數(shù)組時(shí)遇到的一個(gè)bug問(wèn)題
這篇文章主要介紹了在做vue計(jì)算屬性,v-for處理數(shù)組時(shí)遇到的一個(gè)bug 問(wèn)題,需要的朋友可以參考下2018-01-01
vue項(xiàng)目結(jié)構(gòu)目錄超詳細(xì)介紹
這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目結(jié)構(gòu)目錄超詳細(xì)介紹的相關(guān)資料,Vue項(xiàng)目目錄結(jié)構(gòu)是指在開(kāi)發(fā)Vue項(xiàng)目時(shí),為了更好地組織和管理代碼,將不同的文件按照一定的規(guī)則和層次結(jié)構(gòu)進(jìn)行分類和存放的方式,需要的朋友可以參考下2023-12-12
使用WebStorm運(yùn)行vue項(xiàng)目的詳細(xì)圖文教程
在WebStorm中怎么打開(kāi)一個(gè)已有的項(xiàng)目,這個(gè)不用多說(shuō),那么如何運(yùn)行一個(gè)vue項(xiàng)目呢?下面這篇文章主要給大家介紹了關(guān)于使用WebStorm運(yùn)行vue項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2023-02-02
vue項(xiàng)目中使用websocket的實(shí)現(xiàn)
本文主要介紹了vue項(xiàng)目中使用websocket的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
vue頁(yè)面離開(kāi)后執(zhí)行函數(shù)的實(shí)例
下面小編就為大家分享一篇vue頁(yè)面離開(kāi)后執(zhí)行函數(shù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03

