vue分页插件(已发布到npm上)

本来想着分页的插件并不难做,但是考虑到以后会应用到自己的项目上,考虑了挺多的,所以还是花了一天的时间。

我的分页插件一共分为三个层次

第一个层次 : 页数小于等于5
呈现的状态: < 1 2 3 4 5 >
这个层次的逻辑最简单,仅仅是改变页码的样式就可以,逻辑很清晰

第二个层次: 页数大于5小于等于9
这个层次会根据页码的切换会呈现两种不同的状态
第一种状态: < 1 2 3 4 ··· 9 >
第二种状态 < 1 ··· 4 5 6 7 8 9 >

第三个层次: 页数大于9
这个层次会根据页码的切换呈现出三种状态
第一种状态: < 1 2 3 4 ··· n >
第二种状态: < 1 ··· 8 9 10 11 12 ··· n>
第三种状态: < 1 ··· n-3 n-2 n-1 n >

  • cjhcjPaginate.vue 代码
    这个代码量还是比较多的,我也没办法做过多的讲解,索性就不讲了,看官们看不下去的话,直接拉倒最下边,我把我的带放到github上了。
<template>
  <div class="paginate" v-if="pageRange > 0">
      
    <div class="pages-container" :style="[pagesStyle]"  @click="prePage">
      <div class="pages">
        <i class="iconfont icon-left"></i>
      </div>
    </div>

    <!-- 从1到5的页码开始 -->
    <div
      class="pages-container"
      :style="[pagesStyle]"
      v-for="(item, index) in pages"
      :key="index * random()"
    >
      <div
        class="pages"
        @click="turnToPage(index)"
        :style="[index == choseActiveIndex ? activeStyle : '' ]"
      >{
  {index + 1}}</div>
    </div>
    <!-- 从1到5的页码结束 -->

    <!-- 从1到9的页码开始 -->
    <div
      class="pages-container"
      :style="[pagesStyle]"
      v-for="(item) in leftPages"
      :key="item  * random()"
    >
      <div
        class="pages"
        @click="turnToPage(item)"
        :style="[choseActiveIndex == item ? activeStyle : '']"
      >{
  {item + 1}}</div>
    </div>

    <div class="pages-container" :style="[pagesStyle]" v-if="pageRange > 5 && pageRange <=9">
      <div class="pages">
        <span style="font-weight: bold; ">···</span>
      </div>
    </div>

    <div
      class="pages-container"
      :style="[pagesStyle]"
      v-for="(item) in rightPages"
      :key="item * random()"
    >
      <div
        class="pages"
        @click="turnToPage(item)"
        :style="[choseActiveIndex == item ?
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值