Vue + ElementUI 实现分页

官方文档 

Demo

HTML

复制代码
        <template>
            <el-table :data="userList" border style="width:100%; margin: auto" stripe>
                <el-table-column prop="id" label="ID" width="" align="center"></el-table-column>
                <el-table-column prop="name" label="名字" width="" align="center"></el-table-column>
                <el-table-column prop="nick" label="昵称" width="" align="center"></el-table-column>
                <el-table-column prop="age" label="年龄" align="center"></el-table-column>
                <el-table-column prop="profession" label="职业" align="center"></el-table-column>
                <el-table-column prop="add_time" label="注册时间" align="center"></el-table-column>
                <!-- 操作 -->
                <el-table-column label="操作" align="center">
                    <template slot-scope="scope">
                        <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
                        <el-button size="mini" type="danger" @click="del(scope.$index, scope.row)">删除</el-button>
                        <!-- <el-button size="mini" type="danger" @click="add(scope.$index, scope.row)">添加</el-button> -->
                    </template>
                </el-table-column>
            </el-table>
        </template>
        <!-- 分页 -->
        <el-pagination background prev-text next-text 
            @size-change="changePageSize" @current-change="changePagenum"
            :current-page="pageInfo.pagenum" :page-sizes="pageInfo.pageSizes" :page-size="pageInfo.pageSize"
            layout="total, sizes, prev, pager, next, jumper" :total="pageInfo.total">
        </el-pagination>    
复制代码

Vue

复制代码
<script>

export default {
    name: "user",
    data() { 
        return {
            name: '用户列表-分页',
            // table 列表数据
            userList: [],
            
            // 获取用户列表的参数对象
            pageInfo: {
                page: 1,         // 当前的页数
                pageSize: 2,     // 当前每页显示多少条数据
                pageSizes: [1, 2, 5, 10, 20], //控制每页显示多少条
                total: 0,   // 总条数
            }, 
        }
    },
    methods:{ 
        // 改变当前第几页
        changePagenum(page) {
            console.log("当前" + page);
            this.pageInfo.page = page
            this.getList();
        },

        // 改变每页显示条数
        changePageSize(pageSize) {
            console.log("每页显示" + pageSize + "条");
            this.pageInfo.pageSize = pageSize
            this.getList();
        },

        getList() {
            this.$axios.get('user.list', {
                params: {
                    'page': this.pageInfo.page,
                    'pageSize': this.pageInfo.pageSize
                }
            }).then(response => (
                this.userList = response.data.data,
                this.pageInfo.total = response.data.total
            ))
        },
    },
    created() {
        this.getList();
    }
}
</script>
<style scoped>
#app{
    text-align: center;
}
</style>
复制代码

 

posted @   GJH-  阅读(1188)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示