• 律师站
    • 创业

    基于vue.js的分页插件详解


    Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。想了解更多,请戳http://cn.vuejs.org/

    html代码:

    <div class="page-bar" v-else> 
        <ul> 
          <li style="width: 11%" v-if="showFirst"> 
            <a v-on:click="cur--"> 
              <<</a> 
          </li> 
          <li v-for="index in indexs" v-bind:class="{ 'active': cur == index}"> 
            <a v-on:click="btnClick(index)">{{index}}</a> 
          </li> 
          <li style="width: 11%" v-if="showLast"><a v-on:click="cur++"> >></a></li> 
          <li style="width: 22%;margin-left: 7%"><a>共<i>{{all}}</i>页</a></li> 
        </ul> 
      </div> 
    
    

    css部分,可根据自己的实际需要进行调整:

    .page-bar { 
        margin-top: 21px; 
        margin-left: 11%; 
      } 
       
      .page-bar ul, 
      .page-bar li { 
        margin: 0px; 
        padding: 0px; 
      } 
       
      .page-bar ul li { 
        list-style: none; 
        border: 1px solid #ddd; 
        text-decoration: none; 
        position: relative; 
        float: left; 
        text-align: center; 
        padding: 1px 0; 
        margin-left: -1px; 
        line-height: 1.42857143; 
        color: #337ab7; 
        cursor: pointer; 
        width: 8%; 
      } 
       
      .page-bar li:first-child>a { 
        margin-left: 0px 
      } 
       
      .page-bar .active a { 
        color: #fff; 
        cursor: default; 
        background-color: #337ab7; 
        border-color: #337ab7; 
      } 
       
      .page-bar i { 
        font-style: normal; 
        color: #d44950; 
        margin: 0px 4px; 
        font-size: 12px; 
      } 
    
    

    js部分:

    首先要创建一个基本组件

    var vm = new Vue({ 
      el: 'body', 
      data: { 
        list: null, 
        all: 1, //总页数 
        cur: 1, //当前页码 
      }, 
    
    

    继而要利用computed计算页码,

     computed: { 
       indexs: function(index) { 
        var left = 1; 
        var right = this.all; 
        var ar = []; 
        if (this.all >= 11) { 
         if (this.cur > 5 && this.cur < this.all - 4) { 
          left = this.cur - 5; 
          right = this.cur + 4; 
         } else { 
          if (this.cur <= 5) { 
           left = 1; 
           right = 10; 
          } else { 
           right = this.all; 
           left = this.all - 9; 
          } 
         } 
        } 
        while (left <= right) { 
         ar.push(left); 
         left++; 
        } 
        return ar; 
       }, 
       showLast: function() { 
        if (this.cur == this.all) { 
         return false 
        } 
        return true 
       }, 
       showFirst: function() { 
        if (this.cur == 1) { 
         return false 
        } 
        return true 
       } 
      } 
    

    要给 元素加v-on:click="cur++"事件,所以要在vue里加method方法:

    methods: { 
      btnClick: function(items) { //页码点击事件 
        if (items != this.cur) { 
          this.cur = items 
        } 
      } 
    }, 
    

    其实到这里基本上就差不多了,但是可以优化一下,当用户触发点击事件时,页面发生改变,这时要通知其他组件做出改变。

     watch: { 
      cur: function(oldValue, newValue) { 
       console.log(arguments) 
       
      } 
     } 
    

    观察了cur数据当它改变的时候,可以获取前后值。然后通知其他组件。

    后期会在个人GitHub上提交完整版代码

    补充效果图展示

    查看图片

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

    Vue.js实现分页查询功能
    本文实例为大家分享了Vue.js实现分页查询的具体代码,供大家参考,具体内容如下vue.js的使用如下:1、引入vue.jsscriptsrc="~/js/vue2.2.4.js"/scripta、分页条ulcl

    基于vue+canvas的excel-like组件实例详解
    avuecomponent,基于vue的表格组件,主要解决大数据量的表格渲染性能问题,使用canvas绘制表格,同时支持类似excel的批量选中,复制黏贴删除,实时编辑

    基于Vue框架vux组件库实现上拉刷新功能
    最近公司在研发app,选择了基于Vue框架的vux组件库,现总结在实现上拉刷新功能遇到的坑:1.问题:只刷新一次,解决方法:需要自己手动重置状态this.scr

    乏味Oracle VM让乏味的工作变活跃起来(oracle vm 跳出)
    重建Oracle主键助补失效带来的损失(oracle主键失效重建)
    Dlang语言与Oracle数据库的协作之路(dlang oracle)
    实现高可用性从oracle 主从架构着手(oracle 主从架构)
    史上最全Oracle GIPCD 解析大成(oracle gipcd)
    Oracle启用归档日志功能,数据备份更加可靠(oracle开启归档日志)
    MySQL数据库的SQL导入方法简介(sql导入mysql数据库)
    Oracle 12注册码:开启你的新体验(oracle12注册码)
    MySQL激活教程:轻松激活MySQL数据库,享受高效数据管理!(mysql激活)
    使用MySQL命令行实现数据库管理(mysql命令行格式)

     400-8888888 (9:00-18:00)

    gmail@qq.com

    © 祺平科技 • 版权所有

    粤ICP备15012827号-5
    ZMCMS.COM