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

苹果网站做的好的点/app推广团队

苹果网站做的好的点,app推广团队,创建手机网站免费,创意网络广告vue3 – 封装自己的分页组件 背景 在浏览列表类型的数据的时候,如果数据比较多一次性全部请求会出现性能损耗以及加载延迟等问题,那么此时分页组件就起到了关键作用,它可以只请求一部分数据,也不会占用太多的页面空间&#xff0c…

vue3 – 封装自己的分页组件

在这里插入图片描述

背景

在浏览列表类型的数据的时候,如果数据比较多一次性全部请求会出现性能损耗以及加载延迟等问题,那么此时分页组件就起到了关键作用,它可以只请求一部分数据,也不会占用太多的页面空间,想看别的数据可以通过页码的改变来发起请求,刷新页面数据

现在我们自己来封装分页组件

组件所需参数

total 属性 :用来传递数据总条数

pagesize 属性 :每页展示几条数据

currentPage 属性 :当前默认页码

change-page 事件 :页码改变时触发的事件,参数为当前页码


组件落地代码my-pagination.vue

<template><div class="my-pagination"><a href="javascript:;" :class="{ disabled: currentPage === 1 }" @click="changePage(false)">上一页</a><span v-if="currentPage > 3">...</span><ahref="javascript:;"v-for="item in list":key="item":class="{ active: currentPage === item }"@click="changePage(item)">{{ item }}</a><span v-if="currentPage < pages - 2">...</span><a href="javascript:;" :class="{ disabled: currentPage === pages }" @click="changePage(true)">下一页</a></div>
</template>
<script>
import { computed, ref } from 'vue-demi'
export default {name: 'MyPagination',props: {total: {type: Number,default: 80},pagesize: {type: Number,default: 10}},setup(props, { emit, attrs }) {// 当前页const currentPage = ref(attrs.currentPage)// 计算总页数const pages = computed(() => Math.ceil(props.total / props.pagesize))// 页码显示组合const list = computed(() => {const result = []// 总页数小于等于5页的时候if (pages <= 5) {for (let i = 1; i <= pages; i++) {result.push(i)}} else {// 总页数大于5页的时候// 控制两个极端那边的省略号的有无,页码的显示个数与选中页码居中if (currentPage.value <= 2) {for (let i = 1; i <= 5; i++) {result.push(i)}} else if (currentPage.value >= 3 && currentPage.value <= pages.value - 2) {for (let i = currentPage.value - 2; i <= currentPage.value + 2; i++) {result.push(i)}} else if (currentPage.value > pages.value - 2) {for (let i = pages.value - 4; i <= pages.value; i++) {result.push(i)}}}return result})// 点击上一页下一页页码改变页码const changePage = type => {// 点击上一页按钮if (type === false) {if (currentPage.value <= 1) returncurrentPage.value -= 1} else if (type === true) {// 点击下一页按钮if (currentPage.value >= pages.value) returncurrentPage.value += 1} else {// 点击页码currentPage.value = type}// 传给父组件当前页码,可以在该事件中做相关操作emit('change-page', currentPage.value)}return { currentPage, pages, list, changePage }}
}
</script>
<style scoped lang="less">
.my-pagination {display: flex;justify-content: center;padding: 30px;> a {display: inline-block;padding: 5px 10px;border: 1px solid #e4e4e4;border-radius: 4px;margin-right: 10px;&:hover {color: @xtxColor;}&.active {background: @xtxColor;color: #fff;border-color: @xtxColor;}&.disabled {cursor: not-allowed;opacity: 0.4;&:hover {color: #333;}}}> span {margin-right: 10px;}
}
</style>

使用组件

<XtxPagination 
:total="total" 
:pagesize="reqParams.pagesize" 
:currentPage="1" 
@change-page="changePage" />

效果

在这里插入图片描述

http://www.lbrq.cn/news/1050535.html

相关文章:

  • 排名好的徐州网站建设/广州企业推广
  • 泰兴建设局网站/企业培训十大热门课程
  • 临安区规划建设局网站/网络软文是什么
  • 计算机毕业论文代做网站/steam交易链接怎么改
  • 网站css图标大小/b站视频推广网站
  • 杭州做宠物网站的公司哪家好/真正免费的网站建站
  • 做评选活动的网站/网络营销推广实训报告
  • 苏州网站建设与网络营销/上海营销公司
  • 做外贸网站市场/全网网络营销
  • 政府网站建设构想/链交换
  • 福州网站建设索q479185700/网站代搭建维护
  • 校园网站建设情况统计表/外呼系统电销
  • 东营网站制作公司/免费网站安全软件下载
  • 天津专门做网站的公司/南通做网站推广的公司
  • 建设旅游网站目标客户分析/如何创建网站
  • 网站制作可能出现的问题/产品50个关键词
  • wordpress 公网贷款/优化大师免费下载安装
  • wordpress邮箱qq接入/企业seo网站营销推广
  • 云服务器可以做网站/seo零基础教学视频
  • 幻日网站建设/官网整站优化
  • 衢州网站推广/上海职业技能培训机构一览表
  • java 网站开发 教程/码迷seo
  • 我的世界大橙子做皮肤的网站/网络营销的新特点
  • 全景网站开发多少钱/做销售记住这十句口诀
  • 因网站开发需要/品牌策划包括哪几个方面
  • 贵阳市做网站的公司/百度怎么联系客服
  • 南通做网站推广的公司/seo也成搜索引擎优化
  • 为什么选择做游戏网站/站长之家
  • 代做毕设哪个网站靠谱/网络舆情分析报告范文
  • 网站制作预付款会计分录/免费顶级域名注册
  • CST MATLAB 联合仿真超材料开口谐振环单元
  • React中实现完整的登录鉴权与权限控制系统
  • Javaweb - 14.1 - 前端工程化
  • 【代码随想录day 14】 力扣 104.二叉树的最大深度
  • C 语言链表数据结构
  • 「安全发」ISV对接支付宝+小猎系统