elementui做自定义分页

当后端返回的数据没有做分页时,可以在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"

 

posted @ 2022-01-18 22:11  专注网站建设和推广  阅读(895)  评论(0编辑  收藏  举报