element vue怎么实现分页
使用 Element UI 实现分页
Element UI 提供了 el-pagination 组件来实现分页功能。以下是一个基本的分页实现示例:
<template>
<div>
<el-table :data="tableData">
<!-- 表格列定义 -->
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="age" label="年龄"></el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 20, 30, 40]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [],
currentPage: 1,
pageSize: 10,
total: 0
}
},
methods: {
handleSizeChange(val) {
this.pageSize = val
this.fetchData()
},
handleCurrentChange(val) {
this.currentPage = val
this.fetchData()
},
fetchData() {
// 模拟API请求
const mockData = []
for (let i = 0; i < 100; i++) {
mockData.push({ name: `用户${i}`, age: Math.floor(Math.random() * 50) + 18 })
}
const start = (this.currentPage - 1) * this.pageSize
const end = start + this.pageSize
this.tableData = mockData.slice(start, end)
this.total = mockData.length
}
},
created() {
this.fetchData()
}
}
</script>
分页属性说明
el-pagination 组件支持以下常用属性:

current-page: 当前页码page-sizes: 可选的每页显示数量数组page-size: 每页显示条目数total: 总条目数layout: 分页组件布局,可用值包括total,sizes,prev,pager,next,jumper
分页事件处理
el-pagination 提供了两个主要事件:
size-change: 当每页显示数量改变时触发current-change: 当当前页码改变时触发
与后端API集成
实际项目中通常需要与后端API集成:

async fetchData() {
try {
const res = await axios.get('/api/data', {
params: {
page: this.currentPage,
size: this.pageSize
}
})
this.tableData = res.data.list
this.total = res.data.total
} catch (error) {
console.error('获取数据失败:', error)
}
}
自定义分页样式
可以通过 CSS 自定义分页组件样式:
.el-pagination {
margin-top: 20px;
text-align: center;
}
.el-pagination.is-background .btn-next,
.el-pagination.is-background .btn-prev,
.el-pagination.is-background .el-pager li {
background-color: #f4f4f5;
}
分页布局选项
layout 属性可以灵活组合,例如:
layout="prev, pager, next": 只显示上下页和页码layout="total, jumper": 只显示总条数和跳转输入框layout="sizes, prev, pager, next": 显示每页条数选择器和基本分页控件






