全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

基于vue实现分页/翻页组件paginator示例

序言

项目需要自己写了一个基于vue的paginator分享出来,欢迎各路好汉来指教

当页数小于999(包括999)页

页数大于999页

首页或尾页disabled

10页之内显示

Usage

参数

pageCount: 整数,代表总页数

监听事件

@togglePage: 监听切换页面事件,可以获取到当前前往页的页数

父组件调用方法 index.vue

<template lang="html">
  <div>
    <paginator :pageCount="pageCount" @togglePage="togglePage($event)"></paginator>
  </div>
</template>

<script>
export default {
  data(){
    return{
      //总页数
      pageCount: 24
    }
  },
  methods:{
    togglePage(indexPage){
      //打印出当前页数
      console.log(indexPage);
    },
  }
}
</script>

分页组件 paginator.vue

<template lang="html">
  <div class="pagination">
    <ul>
      <li :class="{disabled: curPage == 1}" @click="prevPage" v-if="pageCount > 1">上一页</li>
      <li :class="{active: curPage == 1}" @click="page(1)">1</li>
      <li class="ellipsis" v-show="curPage > 5 && pageCount > 10">...</li>
      <li :class="{active: curPage == index+offset}" v-for="(item,index) in middlePages" @click="page(index+offset)">{{index+offset}}</li>
      <li class="ellipsis" v-show="curPage < bigLimit && pageCount > 10">...</li>
      <li :class="{active: curPage == pageCount}" @click="page(pageCount)" v-if="pageCount > 1">{{pageCount}}</li>
      <li :class="{disabled: curPage == pageCount}" @click="nextPage" v-if="pageCount > 1">下一页</li>
    </ul>
  </div>
</template>

<script>
  export default {
    props:['pageCount'],
    data(){
      return {
        curPage: 1,
      };
    },
    computed:{
      middlePages(){
        if(this.pageCount <= 2){
          return 0;
        }else if(this.pageCount> 2 && this.pageCount <= 10){
          return this.pageCount-2;
        }else{
          return this.curPage > 999 ? 5 : 8;
        }
      },
      bigLimit(){
        return this.middlePages > 5 ? this.pageCount-6 : this.pageCount -3;
      },
      offset(){
        if(this.curPage <= 5){
          return 2;
        }else if(this.curPage >= this.bigLimit){
          return this.bigLimit-2;
        }else{
          return this.middlePages > 5 ? this.curPage-3 : this.curPage-2;
        }
      }
    },
    methods:{
      page(indexPage){
        this.$emit('togglePage',indexPage);
        this.curPage = indexPage;
      },
      prevPage(){
        if(this.curPage != 1){
          this.page(this.curPage-1);
        }
      },
      nextPage(){
        if(this.curPage != this.pageCount){
          this.page(this.curPage+1);
        }
      }
    }
  };
</script>

<style lang="css" scoped>
  @import 'styles/vars.css';
  .pagination{
    width: 660px;
    text-align: center;
    ul{
      margin: 40px 0 60px 0;
      li{
        cursor: pointer;
        display: inline-block;
        padding: 5px 9px;
        border: 1px solid #e1e1eb;
        margin-right: 5px;
        &.active{
          background: #4078c0;
          color: #fff;
        }
        &.ellipsis{
          border: none;
        }
        &.disabled{
          color: #dcdcdc;
        }
      }
    }
  }
</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# vue  # 翻页组件  # paginator  # 翻页  # vue.js的分页组件  # vue 翻页组件vue-flip-page效果  # 基于Vuejs框架实现翻页组件  # vue自定义翻页组件的方法  # 下一页  # 上一页  # 尾页  # 分页  # 写了  # 首页  # 大家多多  # 之内  # methods  # indexPage  # return  # export  # script  # data  # default  # console  # click  # curPage  # html 


相关文章: 如何访问已购建站主机并解决登录问题?  教学论文网站制作软件有哪些,写论文用什么软件 ?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  建站主机助手选型指南:2025年热门推荐与高效部署技巧  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  网站制作员失业,怎样查看自己网站的注册者?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  如何快速生成高效建站系统源代码?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  建站主机选哪家性价比最高?  ,巨量百应是干嘛的?  如何在万网自助建站平台快速创建网站?  如何高效完成自助建站业务培训?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  建站之星客服服务时间及联系方式如何?  外贸公司网站制作哪家好,maersk船公司官网?  如何通过远程VPS快速搭建个人网站?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  香港服务器租用每月最低只需15元?  如何选择靠谱的建站公司加盟品牌?  金*站制作公司有哪些,金华教育集团官网?  自助网站制作软件,个人如何自助建网站?  常州企业网站制作公司,全国继续教育网怎么登录?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  贸易公司网站制作流程,出口贸易网站设计怎么做?  学校为何禁止电信移动建设网站?  网站制作报价单模板图片,小松挖机官方网站报价?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  测试制作网站有哪些,测试性取向的权威测试或者网站?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  如何在Golang中使用encoding/gob序列化对象_存储和传输数据  做企业网站制作流程,企业网站制作基本流程有哪些?  建站之星后台密码遗忘或太弱?如何重置与强化?  详解jQuery中基本的动画方法  ,如何利用word制作宣传手册?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  建站主机选购指南:核心配置与性价比推荐解析  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  简单实现Android验证码  高端智能建站公司优选:品牌定制与SEO优化一站式服务  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。