溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

怎么使用ant?design?Vue純前端實(shí)現(xiàn)分頁(yè)

發(fā)布時(shí)間:2023-04-21 15:57:56 來(lái)源:億速云 閱讀:177 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇“怎么使用ant design Vue純前端實(shí)現(xiàn)分頁(yè)”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“怎么使用ant design Vue純前端實(shí)現(xiàn)分頁(yè)”文章吧。

    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>
        <h4>學(xué)習(xí)文件</h4>
        <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  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è)的形式

    怎么使用ant?design?Vue純前端實(shí)現(xiàn)分頁(yè)

    正確樣式

    怎么使用ant?design?Vue純前端實(shí)現(xiàn)分頁(yè)

    錯(cuò)誤樣式

    以上就是關(guān)于“怎么使用ant design Vue純前端實(shí)現(xiàn)分頁(yè)”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

    向AI問(wèn)一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI