當后端返回的數據沒有做分頁時,可以在vue頁面配置element 分頁組件做分頁:
1,先在data中定義好分頁相關的屬性
currentPage: 1, // 當前頁碼 total: 10, // 總條數 pageSize: 10 // 每頁的數據條數
2,在el-table中給數據源比如rightList做處理,這個是最核心的地方
<el-table :data="rightsList.slice((currentPage-1)*pageSize,currentPage*pageSize)" style="width: 100%" stripe border>
</el-table>
3,在</el-table>下面添加分頁組件,並設置好相關屬性
<el-pagination layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[10,20,30]" :page-size="pageSize" :total="rightsList.length"> ></el-pagination>
4,分頁方法處理
handleSizeChange(val) { console.log(`每頁 ${val} 條`); this.currentPage = 1; this.pageSize = val; }, handleCurrentChange(val) { console.log(`當前頁: ${val}`); this.currentPage = val; }
重點:
slice() 方法可從已有的數組中返回選定的元素。
arrayObject.slice(start,end)
參數start:必需。規定從何處開始選取。如果是負數,那么它規定從數組尾部開始算起的位置。也就是說,-1 指最后一個元素,-2 指倒數第二個元素,以此類推。
參數end:可選。規定從何處結束選取。該參數是數組片斷結束處的數組下標。如果沒有指定該參數,那么切分的數組包含從 start 到數組結束的所有元素。如果這個參數是負數,那么它規定的是從數組尾部開始算起的元素。
el-table中的data數據:
:data="rightList.slice((currentPage-1)*pageSize,currentPage*pageSize)"
設置分頁器total等於table數據的長度:
:total="tableData.length"