基于vue.js实现的分页

 更新时间:2018年03月13日 10:08:54   作者:AmberWu  
本文主要给大家介绍基于vue的分页原生写法,代码分为html部分和js部分,简单易懂,非常不错,具有参考借鉴价值,需要的朋友参考下吧

本文主要介绍基于vue的分页原生写法。

先po上效果图:

这里写图片描述

html部分,将page作为一个单独的组件

<script type="text/x-template" id="page">
  <ul class="pagination">
   <li v-show="current != 1" @click="current-- && goto(current)">
    <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >上一页</a>
   </li>
   <li v-for="index in pages" @click="goto(index)" :class="{'active':current == index}" :key="index">
    <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >{{index}}</a>
   </li>
   <li v-show="allpage != current && allpage != 0 " @click="current++ && goto(current++)">
    <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >下一页</a>
   </li>
  </ul>
 </script>
 <div id="app">
  <page></page>
 </div>

js部分:

 <script>
  Vue.component("page", {
   template: "#page",
   data: function () {
    return {
     current: 1, // 当前页码
     showItem: 5, // 最少显示5个页码
     allpage: 13 // 总共的
    }
   },
   computed: {
    pages: function () {
     var pag = [];
     if (this.current < this.showItem) { //如果当前的激活的项 小于要显示的条数
      //总页数和要显示的条数那个大就显示多少条
      var i = Math.min(this.showItem, this.allpage);
      while (i) {
       pag.unshift(i--);
      }
     } else { //当前页数大于显示页数了
      var middle = this.current - Math.floor(this.showItem / 2), //从哪里开始
       i = this.showItem;
      if (middle > (this.allpage - this.showItem)) {
       middle = (this.allpage - this.showItem) + 1
      }
      while (i--) {
       pag.push(middle++);
      }
     }
     return pag
    }
   },
   methods: {
    goto: function (index) {
     if (index == this.current) return;
     this.current = index;
     //这里可以发送ajax请求
    }
   }
  })
  var vm = new Vue({
   el: '#app',
  })
 </script>

css部分:

 body {
   font-family: "Segoe UI";
  }
  li {
   list-style: none;
  }
  a {
   text-decoration: none;
  }
  .pagination {
   position: relative;
  }
  .pagination li {
   display: inline-block;
   margin: 0 5px;
  }
  .pagination li a {
   padding: .5rem 1rem;
   display: inline-block;
   border: 1px solid #ddd;
   background: #fff;
   color: #0E90D2;
  }
  .pagination li a:hover {
   background: #eee;
  }
  .pagination li.active a {
   background: #0E90D2;
   color: #fff;
  }

最后附上github地址:https://github.com/AmberWuWu/vue-page

总结

以上所述是小编给大家介绍的基于vue.js实现的分页,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • 一文详解Vue3组件通信轻松玩转复杂数据流

    一文详解Vue3组件通信轻松玩转复杂数据流

    在大型Vue项目中,组件通信如同神经网络般贯穿整个应用,这篇文章将为大家详细介绍一下Vue3中的组件通信方式,有需要的小伙伴可以了解下
    2025-02-02
  • vue使用富文本编辑器vue-quill-editor的操作指南和注意事项

    vue使用富文本编辑器vue-quill-editor的操作指南和注意事项

    vue中很多项目都需要用到富文本编辑器,在使用了ueditor和tinymce后,发现并不理想,所以果断使用vue-quill-editor来实现,下面这篇文章主要给大家介绍了关于vue使用富文本编辑器vue-quill-editor的操作指南和注意事项,需要的朋友可以参考下
    2023-05-05
  • Vue计算属性实现成绩单

    Vue计算属性实现成绩单

    这篇文章主要为大家详细介绍了Vue计算属性实现成绩单,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Vue自定义指令深入探讨实现

    Vue自定义指令深入探讨实现

    这篇文章主要介绍了Vue自定义指令的实现,Vue支持自定义指令,开发者可以根据自己的需求,创建自己的指令来扩展Vue的功能,需要详细了解可以参考下文
    2023-05-05
  • 详解vue-cli中使用rem,vue自适应

    详解vue-cli中使用rem,vue自适应

    这篇文章主要介绍了vue-cli使用rem,vue自适应,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • ElementUI中两个Select选择联动效果实现方法

    ElementUI中两个Select选择联动效果实现方法

    这篇文章主要给大家介绍了关于ElementUI中两个Select选择联动效果实现的相关资料,在前端项目开发中,经常会遇到省市县三级联动的下拉列表框组的问题,需要的朋友可以参考下
    2023-08-08
  • Vue.js中computed的基本使用方法

    Vue.js中computed的基本使用方法

    Vue.js中,computed属性根据依赖进行缓存,只有依赖改变时才重新计算,这样有效提高性能,computed属性是响应式的,可以自动更新,并且默认是只读的,它与methods的主要区别在于计算属性具有缓存性,而方法每次调用都会执行,使用computed可以使模板更加简洁,提高应用性能
    2024-09-09
  • 在Vue 3中使用OpenLayers加载GPX数据并显示图形效果

    在Vue 3中使用OpenLayers加载GPX数据并显示图形效果

    本文介绍了如何在Vue 3中使用OpenLayers加载GPX格式的数据并在地图上显示图形,通过使用OpenLayers的GPX解析器,我们能够轻松地处理和展示来自GPS设备的地理数据,需要的朋友可以参考下
    2024-12-12
  • mpvue+vant app搭建微信小程序的方法步骤

    mpvue+vant app搭建微信小程序的方法步骤

    这篇文章主要介绍了mpvue+vant app搭建微信小程序的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • Vue中自动生成路由配置文件覆盖路由配置的思路详解

    Vue中自动生成路由配置文件覆盖路由配置的思路详解

    这篇文章主要介绍了Vue中自动生成路由配置文件覆盖路由配置的思路详解,大概思路是读取@/views下所有index.vue如果当前文件下有包含相同路径则认为是它的子路由,需要的朋友可以参考下
    2024-05-05

最新评论