当前位置:主页 > vue.js教程 > vue实现分页组件

vue实现分页组件实例代码

发布:2020-02-01 16:48:51 184


给大家整理了vue相关的编程文章,网友鱼倩美根据主题投稿了本篇教程内容,涉及到vue、分页组件、vue实现分页组件相关内容,已被148网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

vue实现分页组件

本文实例为大家分享了vue实现分页组件的具体代码,供大家参考,具体内容如下

<template>
 <div class="pageBox">
  <ul>
   <li v-if="this.condition.pageNo > 1 && this.pages.length > 4" class="sides"><a @click="prePage()"><s class="font_main"></s></a></li>
   <li v-for="(item, index) in pages" :class="{'curtPage': condition.pageNo == item}">
    <a v-if="item" @click="goPage(item)" >
     <s>{{item}}</s>
    </a>
    <a href="javascript:;" rel="external nofollow" v-else>...</a>
   </li>
   <li class="sides" v-if="condition.pageNo < pageCount && this.pageCount > 4"><a @click="nextPage()"><s class="font_main"></s></a></li>
  </ul>
 </div>
</template>

js中代码 page 和condition是由父组件中传过来的参数

<script>
 export default {
  props: {
   page: Object,
   condition: Object
  },
  data () {
   return {
    pageSize: this.condition.pageSize
   }
  },
  computed: {
   pageCount: function () {
    return this.page.totalCount / this.condition.pageSize > 0 ? this.page.totalCount % this.condition.pageSize === 0 ? this.page.totalCount / this.condition.pageSize : Math.ceil(this.page.totalCount / this.condition.pageSize) : 1
   },
   pages () {
    let c = this.condition.pageNo
    let t = this.pageCount
    let arr = []
    if (t === 1) {
     return arr
    }
    if (t <= 4) {
     for (let i = 1; i <= t; i++) {
      arr.push(i)
     }
     return arr
    }
    if (c <= 3) return [1, 2, 3, 0, t]
    if (c >= t - 1) return [1, 0, t - 2, t - 1, t]
//    if (c === 4) return [1, 2, 3, 4, 5, 0, t]
//    if (c === (t - 2)) return [1, 0, t - 3, t - 2, t - 1, t]
    return [1, 0, c - 1, c, c + 1, 0, t]
   }
  },
  methods: {
   goPage (indexPage) {
    if (this.indexPage !== this.condition.pageNo) {
     this.condition.pageNo = indexPage
     this.$emit('search')
    }
   },
   prePage () {
    if (this.condition.pageNo !== 1) {
     this.condition.pageNo--
     this.goPage(this.condition.pageNo)
    }
   },
   nextPage () {
    if (this.condition.pageNo !== this.pageCount) {
     this.condition.pageNo++
     this.goPage(this.condition.pageNo)
    }
   }
  }
 }
</script>

效果图:

vue实现分页组件

vue实现分页组件

vue实现分页组件

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


参考资料

相关文章

  • 实例详解vue组件中点击按钮后修改输入框的状态

    发布:2020-01-27

    要求点击修改按钮之后部分输入框由禁用状态变为可用状态。下面我给大家分享一段实例代码基于vue组件中点击按钮后修改输入框的状态,需要的的朋友参考下


  • 详解vue配置文件实现代理v2版本的方法

    发布:2020-03-09

    这篇文章主要介绍了vue配置文件实现代理v2版本的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下


  • vue移动端实现手机左右滑动进入的实例

    发布:2020-03-26

    这篇文章主要为大家详细介绍了vue移动端实现手机左右滑动入场动画,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • vue 计时器组件的实现代码

    发布:2022-06-27

    给大家整理一篇关于vue的教程,本篇文章主要介绍了vue 计时器组件的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧


  • 实例讲解如何在vue-loader中引入模板预处理器

    发布:2020-02-10

    这篇文章主要介绍了vue-loader中引入模板预处理器的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • 介绍Vue实现分页

    发布:2020-01-27

    这篇文章主要为大家详细介绍了Vue分页器实现原理,编写了分页器组件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • vue使用mui的弹出日期选择插件实例详解

    发布:2019-11-06

    今天小编就为大家分享一篇vue里面使用mui的弹出日期选择插件实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • 使用webpack搭建vue项目实现脚手架功能

    发布:2022-06-19

    为网友们分享了关于vue的教程,这篇文章主要介绍了使用webpack搭建vue项目实现脚手架功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


网友讨论