vue+elementui的分页功能

重点在于分页组件的@current-change="触发事件函数"

布局文件:

<!--表格-->
                <div>
                    <el-table
                            :data="result"
                            border
                            style="width: 100%">
                        <el-table-column
                                fixed
                                prop="id"
                                label="ID"
                                width="150">
                        </el-table-column>
                        <el-table-column
                                prop="name"
                                label="分区名称"
                                width="120">
                        </el-table-column>
                        <el-table-column
                                prop="description"
                                label="描述"
                                width="120">
                        </el-table-column>
                        <el-table-column
                                prop="level"
                                label="等级"
                                width="120">
                        </el-table-column>
                        <el-table-column
                                prop="picture"
                                label="图标"
                                width="150">
                        </el-table-column>
                        <el-table-column
                                prop="createTime"
                                label="添加时间"
                                width="150">
                        </el-table-column>
                        <el-table-column
                                prop="updateTime"
                                label="最近更新"
                                width="150">
                        </el-table-column>
                        <el-table-column
                                fixed="right"
                                label="操作"
                                width="100">
                            <template slot-scope="scope">
                                <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
                                <el-button type="text" size="small">编辑</el-button>
                            </template>
                        </el-table-column>
                    </el-table>
                </div>
                <!--分页-->
                <div style="padding-top: 10px">
                    <el-pagination
                            background
                            layout="prev, pager, next"
                            :total="1000"
                            @current-change="getProjectList">
                    </el-pagination>
                </div>

 其中的@current-change是当前页发生改变时触发的函数,因为<el-pagination>会自己把total,page-count,page-size等分页相关的参数传入(大概吧),所以不用在方法里面传参,即不用写成 @current-change="getProjectList(xx, xx, xx)"也可以完成分页功能。其中getProjectList代码如下:

            /***
             * @param page 当前页
             * @param limit 每页显示数目
             */
getProjectList(page = 1,limit = 2){//分页查询project数据
                const _this = this;
                this.$axios({
                    // 默认请求方式为get
                    method: 'get',
                    url: 'http://localhost:8001/projectservice/page/'+page+"/"+limit,
                    // 传递参数
                    params: {
                    },
                    // 设置请求头信息
                    headers: {
                    },
                    responseType: 'json'
                }).then(response => {
                    // 请求成功
                    _this.result = response.data.data.rows
                    _this.total = response.data.data.total
                }).catch(error => {
                    // 请求失败,
                    console.log(error)
                });
            }

效果如下:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一些基本的代码模板。 首先,您需要在Vue项目中安装Element UI并导入相关组件。你可以使用npm安装Element UI: ``` npm i element-ui -S ``` 接下来,您需要在vue组件中导入Element UI的分页组件: ```javascript <template> <div> <el-table :data="tableData"> // 表格列 </el-table> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[10, 20, 30, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"> </el-pagination> </div> </template> <script> import { Table, Pagination } from 'element-ui'; export default { components: { Table, Pagination }, data() { return { tableData: [], currentPage: 1, pageSize: 10, total: 0 } }, methods: { fetchData() { // 向后端请求数据 }, handleSizeChange(val) { this.pageSize = val; this.fetchData(); }, handleCurrentChange(val) { this.currentPage = val; this.fetchData(); } }, mounted() { this.fetchData(); } } </script> ``` 在上述代码中,`Table`和`Pagination`是导入的组件,`tableData`是表格数据,`currentPage`和`pageSize`是当前页码和每页显示的数据条数,`total`是总数据量。在`el-pagination`标签中,我们绑定了`size-change`和`current-change`事件,分别对应每页显示的数据条数和当前页码的改变。在`handleSizeChange`和`handleCurrentChange`方法中,我们可以进行数据请求,刷新表格数据。 当然,上述代码只是一个简单的示例,您需要根据您的具体需求进行相应的改动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值