Vue 中基于element-ui二次封装Pagination分页组件
Vue 中基于element-ui二次封装Pagination分页组件
<template> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[1, 2, 5, 10]" :page-size="pageSize" :layout="layout" :total="total" > </el-pagination> </template> <script> export default { props: { currentPage: { type: [String, Number], default: 1, }, total: { type: [String, Number], default: 0, }, pageSizes: { type: Array, default: () => [10, 15, 30, 50], }, pageSize: { type: [String, Number], default: 10, }, // prev表示上一页,next为下一页,pager表示页码列表,jumper表示跳页元素,total表示总条目数,size用于设置每页显示的页码数量 // total, sizes, prev, pager, next, jumper layout: { type: String, default: "total, sizes, prev, pager, next, jumper", }, }, data() { return { }; }, methods: { handleSizeChange(val) { // 子组件向父组件传值 this.$emit("sizeChange", val); }, handleCurrentChange(val) { this.$emit("currentChange", val); }, }, }; </script> <style lang="less" scoped> .page { text-align: center; color: #409eff; } </style>
使用组件
<template> <Pagination @sizeChange=handleSizeChange :pageSize=pageSize @currentChange=handleCurrentChange :currentPage=currentPage :total=total></Pagination> </template> <script> import qs from qs import Pagination from @/components/utils/Pagination export default { components: { Pagination, }, data() { return { globalList: [], // 当前页数量 pageSize: 1, // 当前页 currentPage: 1, // 总数 total: 1, } }, created() { this.getNewsList(this.tag) }, methods: { getNewsList(tagName) { console.log(tagName) const param = { page: this.currentPage, size: this.pageSize, } this.$axios({ url: "/api/art/findTag", //请求地址 method: "post", //请求方式 data: qs.stringify(param) }).then(res => { // ok表示请求成功的数据 console.log(res) // 把请求到的数据给testDatas数组 this.globalList = res.data.data.list // 当前页数 this.currentPage = res.data.data.pageNum // 当前页数量 this.pageSize = res.data.data.pageSize // 分页总数 this.total = res.data.data.total console.log(JSON.stringify(res.data.data.total)) }); }, // 监听 pagesize改变的事件 handleSizeChange(newSize) { // console.log(`每页 ${val} 条`); console.log(newSize) this.pageSize = newSize this.getNewsList() }, // 监听 页码值 改变事件 第几页 handleCurrentChange(newSize) { // console.log(`当前页: ${val}`); console.log("111:" + newSize) this.currentPage = newSize this.getNewsList() }, }, } </script>
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
用java来写猜数字游戏