当前位置: 首页 > news >正文

唐山建设网站建站六安城市网

唐山建设网站建站,六安城市网,2345浏览器入口,天猫网站平面广告vue3 基于element plus对el-pagination进行二次封装 1、前言2、在components文件夹中新建pagination.vue文件3、在组件内使用分页 1、前言 在vue3项目中,如果每个列表页都敲一遍分页方法,显然是不合理的,那么,下面我将基于elemen…

vue3 基于element plus对el-pagination进行二次封装

  • 1、前言
  • 2、在components文件夹中新建pagination.vue文件
  • 3、在组件内使用分页

1、前言

在vue3项目中,如果每个列表页都敲一遍分页方法,显然是不合理的,那么,下面我将基于element plus对el-pagination进行二次封装,使用vue3语法糖格式,废话不多说,开干。

2、在components文件夹中新建pagination.vue文件

<template><div class="pagination"><el-pagination background :layout="layout" :pager-count="pagerCount" :page-sizes="pageSizes" :page-size="pageSize":total="pageTotal" v-model:currentPage="currentPages" @size-change="sizeChange" @current-change="current"@prev-click="prev" @next-click="next"></el-pagination></div>
</template><script setup>
import { ref, reactive, onMounted } from "vue"
const props = defineProps({pageTotal: {type: Number,default: 0, //总页数},pagerCount: {type: Number,default: 5, //如果页数很多大概展示的页码},layout: {type: String,default: "total,sizes, prev, pager, next, jumper, ->, slot", //分页组件会展示的功能项},pageSizes: {type: Array,default: () => {return [10, 20, 50, 100] //指定分页展示条数},},currentPage: {type: Number,default: 1, //指定跳转到多少页},pageSize: {type: Number,default: 10, //每页展示的条数,根据自己实际,且会带入请求},pageNum: {type: Number,default: 1, //第几页数据,根据自己实际,且会带入请求},
})let currentPages = ref(props.currentPage)
let pageData = reactive({pageSize: props.pageSize,pageNum: props.pageNum,
})const emit = defineEmits(["pageFunc"])//选择每页显示数量 Change page size
const sizeChange = (val) => {pageData.pageSize = valemit("pageFunc", pageData)
}
//选择某一页
const current = (val) => {pageData.pageNum = currentPages.valueemit("pageFunc", pageData)
}
//上一页
const prev = () => {pageData.pageNum = pageData.pageNum - 1emit("pageFunc", pageData)
}
//下一页
const next = () => {pageData.pageNum = pageData.pageNum + 1emit("pageFunc", pageData)
}
</script><style scoped lang="less">
.pagination {width: 100%;background: #fff;padding: 5px 0;text-align: center;margin: 0 auto;display: flex;flex-direction: column;align-items: center;
}
</style>

3、在组件内使用分页

<template><pagination v-show="totalRows > 0" :pageNum="queryParams.pageNum" :pageSize="queryParams.pageSize" :pageTotal="totalRows" @pageFunc="pageFunc" />
</template>
<script setup>
import { reactive, ref } from 'vue'
// 引入分页组件
import Pagination from '@/components/pagination.vue'
// 查询参数
const queryParams = reactive({pageNum: 1,pageSize: 10,organId: '',projectName: '',projectStatus: '',projectLeader: '',
})
// 项目总条数
const totalRows = ref(0)
// 分页回调
const pageFunc = (data) => {queryParams.pageSize = data.pageSizequeryParams.pageNum = data.pageNum// 触发获取项目数据函数getProjectList()  
}
</script>
http://www.yayakq.cn/news/979854/

相关文章:

  • 网站以个人名义备案淄博刚刚发布紧急通知
  • 做的比较炫的网站深圳网站制作公司售后
  • 建设路街道办事处门户网站wordpress 反爬虫
  • 做融资的网站有哪些织梦购物网站整站源码
  • 江苏威达建设有限公司网站网上营销方式和方法
  • 微网站建设的第一步彩票网站模版
  • 404错误页面放在网站的哪里网站建设需要什么方案
  • 书店网站建设目标调研的方案最近的新闻大事
  • 潢川网站建设地方网站欣赏
  • 惠州网站搭建找谁重庆建设工程人力资源官网
  • 用ps做网站主页网站闭站保护
  • 做视频网站视频放在哪里wordpress改了固定链接出现404
  • wordpress站酷首页linux 什么做网站好
  • 内蒙古建设厅安全资料网站广告网站建设及推广
  • 开发一个网站多少钱军事最新消息今天
  • 网站建设需求流程图网络营销文案实例
  • 17Z一起做网站广州站北京公司网站如何制作
  • 旅行网站建设的规划书wordpress 检索文件
  • 湖州网站网站建设山东网站制作软件
  • 网站建设培训会上的讲话wordpress ad widget
  • html5网站后台页面设计平面设计广告设计
  • 创建网站需要准备哪些资料网站建设流程报告
  • 用.net编写网站天辰建设网
  • wordpress媒体库是哪个文件夹南宁seo关键词排名
  • 辽阳网站建设多少钱北京做网站公司有哪些
  • 吴忠门户网站建设个人网页设计与实现论文免费
  • 网站开发语言有什么要求2022最新热点事件及点评
  • 邢台做网站推广找谁建设中标查询网站
  • 网站制作出租深圳建设网站哪里好
  • 网站设计平台万商云集(成都)科技股份有限公司