js靜態數據分頁展示


拿vue做示例

首先定義data

data() {
    return {
      tableData: [], // 當前頁的數據,用於給表格展示用的
      tableDataAll: [], // 需要拿來分頁的總數據
      pagination: {
        totalRows: 0, //總條數
        pageSize: 10, //每頁顯示條數
        pageNumber: 1
      }
    }
  }

定義methods

methods: {
    currentChange(val) {
      //頁碼改變
      this.pagination.pageNumber = val;
      this.dataPagination(this.tableDataAll);
    },
    sizeChange(val) {
      //切換每頁顯示條數
      this.pagination.pageSize = val;
      this.dataPagination(this.tableDataAll);
    },
    // 數據分頁
    dataPagination(dataList) {
      if (!dataList || dataList.length <=0) {
        dataList = [];
        this.tableData = [];
      }
      if (dataList.length <= this.maxUsePage) {
        this.tableData = dataList;
        return;
      }  
      let pageNo = this.pagination.pageNumber;
      let pageSize = this.pagination.pageSize;
      var offset = (pageNo - 1) * pageSize;
      this.pagination.totalRows = dataList.length;
      this.tableData = (offset + pageSize >= dataList.length) ? dataList.slice(offset, dataList.length) : dataList.slice(offset, offset + pageSize);  
    }
},
 mounted: function() {
    this.$nextTick(function () {
          // 初始化渲染
          this.pagination.pageNumber = 1
          // 得到總數據tableDataAll進行分頁
          this.dataPagination(this.tableDataAll);
     })
  }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM