element-ui实现分页功能

为列表数据添加分页功能,使用分页组件完成分页功能。
参考:https://element.eleme.cn/#/zh-CN/component/pagination
在这里插入图片描述
EasyMock 添加分页模拟接口
请求URL: /member/list/search/{page}/{size}
page 当前要查询的页码, size 每页显示条数,通过这两个值,可查询出当前请求要响应的数据。
请求方式: post
描述:会员列表数据分页
mock.js 配置:

{
	"code": 2000, 
	"flag": true, 
	"message": "查询成功", 
	"data": { 
		"total": "@integer(100,200)", // 查询出来的总记录数
		"rows|10": [{ // 返回当前页的记录数 10 条, 即每页显示 10 条记录
			"id|+1": 10, 
			"cardNum": "@integer(10000)", //大于1000的正整数 
			"name": "@cname", 
			"birthday": "@date", 
			"phone|11": "@integer(0,9)", // 11个位数字
			"integral": "@integer(0, 500)", 
			"money": "@float(0, 100, 1, 3)", // 0-1000小数,1-3位小数位 
			"payType|1": ['1', '2', '3', '4'], 
			"address": "@county(true)" 
		}] 
	}
}

Api 调用接口

  1. 修改 src\api 下的 member.js , 在导出的默认对象中,增加分页查询方法
 // 分页搜索方法
    // page 当前页码, size每页查询条数, searchMap条件查询的条件值
    search(page, size, searchMap) {
        return request({
            url: `/member/list/search/${page}/${size}`,
            method: 'post',
            data: searchMap
        })
    },
  1. 在 src\views\member\index.vue 中, 添加 JS 代码如下:
    声明分页属性, 调用 getList 改为调用 search 方法
<script>
import memberApi from '@/api/member'

export default {
    
    data() {
        return {
            list: [],
            total: 0, // 总记录数
            currentPage: 1, // 当前页码 
            pageSize: 20, // 每页显示10条数据,
            searchMap: { // 条件查询绑定的条件值
                cardNum: '',
                name: '',
                payType: '',
                birthday: ''
            }, 
        }
   	},
   	 created() {
        // 初始化获取列表数据
        this.fetchData()
    },

    methods: {
        // 当每页显示条数改变后,被触发 , val是最新的每页显示条数
        handleSizeChange(val) {
            // console.log(val)
            this.pageSize = val
            this.fetchData()
        },
        // 当页码改变后,被触发 , val 是最新的页面
        handleCurrentChange(val) {
            // console.log(val)
            this.currentPage = val
            this.fetchData()
        },
        fetchData() {
            // memberApi.getList().then(response => {
            // 调用分页查询数据
            memberApi.search(this.currentPage, this.pageSize, this.searchMap).then(response =>{
                const resp = response.data
                // console.log(resp.data.rows)
                this.list = resp.data.rows
                this.total = resp.data.total
            })
        },
    }

修改 src\views\member\index.vue , template 标签中添加页面模板代码:
注意:添加在 div 里面。因为 template 里面只能有唯一根节点
current-change 和 size-change 事件都是调用 fetchData

<!-- 分页组件 -->
        <el-pagination
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :current-page="currentPage"
            :page-sizes="[10, 20, 50]"
            :page-size="pageSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="total">
        </el-pagination>

将 @size-change 和 @current-change 事件处理的函数名改变为 handleSizeChange 和
handleCurrentChange

<el-pagination 
	@size-change="handleSizeChange" 
	@current-change="handleCurrentChange"

在 methods 中添加函数,

methods: { 
	handleSizeChange(val) { 
		this.pageSize = val 
		this.fetchData() },
	handleCurrentChange(val) { 
		this.currentPage = val 
		this.fetchData() 
},

微信公众号:求之(ID:qiuzhi1818)
前进,不停就好。无论面对什么,都不要停下。
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ElementUI 是一个基于 Vue.js 的组件库,其中包含了很多常用的组件,包括分页组件。使用 ElementUI分页组件可以非常方便地实现分页功能。 首先在你的 Vue.js 项目中安装 ElementUI: ``` npm install element-ui --save ``` 然后在你的代码中引入分页组件: ```html <template> <div> <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 { currentPage: 1, pageSize: 10, total: 100 }; }, methods: { handleSizeChange(val) { console.log(`每页 ${val} 条`); }, handleCurrentChange(val) { console.log(`当前页: ${val}`); } } }; </script> ``` 在上面的代码中,我们使用了 ElementUI 的 `el-pagination` 组件,并且设置了一些属性来配置分页功能。其中,`currentPage` 表示当前页码,`pageSize` 表示每页显示的数据条数,`total` 表示总数据条数。 在 `methods` 中,我们定义了两个函数,分别处理分页大小和当前页码的变化。这些函数可以根据实际需求来定制。 最后,我们在模板中使用 `el-pagination` 组件来实现分页功能,同时根据需要设置 `layout` 属性来控制分页组件的显示方式。 这就是使用 ElementUI 实现分页功能的基本步骤。根据实际需求,你可以根据 ElementUI 的文档来进一步定制分页组件的样式和功能

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值