美文网首页
使用vue分页插件vue-pagination

使用vue分页插件vue-pagination

作者: 洋__ | 来源:发表于2017-03-07 15:58 被阅读1732次

参考前辈的demo,所以先放上原demo的git地址:👻

https://github.com/cycgit/vue-pagination

Paste_Image.png

按照惯例,先引入必须的资源,然后在项目的html中加入分页模板:

 <div id="app" >
         <vue-nav :cur="cur" :all="all" :url="url" :callback="callback"></vue-nav>
 </div>

js代码照样搬就可以了:

var app = new Vue({
                el: '#app',
                data:{
                    cur: 1,
                    all: 23,
                    url:'localhost:6677/queryList'
                },
                components:{
                    'vue-nav': Vnav
                },
                methods:{
                    callback(data) {
                        //TODO
                    }
                }
            })

这里 cur是当前页,all是总页数,url是查询列表服务的url地址,然后看一下组件的处理

(function () {
    var tm = '<div class="page-bar">' +
        '<ul>' +
        '<li v-if="cur!=1" style="margin-left: 10px"><a @click="btnClick(cur-1)">上一页</a></li>' +
        '<li v-for="index in indexs" v-bind:class="{ active: cur == index}" style="margin-left: 10px">' +
        '<a v-on:click="btnClick(index)" >{{ index }}</a>' +
        '</li>' +
        '<li v-if="cur!=all" style="margin-left: 10px"><a @click="btnClick(cur+1)">下一页</a></li>' +
        '<li style="margin-left: 10px"><a>共<i>{{all}}</i>页</a></li>' +
        '</ul>' +
        '</div>'

    var navBar = Vue.extend({
        template: tm,
        props: {
            cur: {
                type: [String, Number],
                required: true
            },
            all: {
                type: [String, Number],
                required: true
            },
            url: {
                type: [String, Number],
                required: true
            },
            callback: {
                default() {
                    return function callback() {
                        // todo
                    }
                }
            }
        },
        computed: {
            indexs() {
                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
            }
        },
        methods: {
            btnClick(page) {
                if (page != this.cur) {
                    this.callback(page)
                }
                //这里可以发送ajax请求
            }
        }
    })

    window.Vnav = navBar

})()

整个插件整合之后的效果如下:

Paste_Image.png

谢谢观赏! 😂

相关文章

  • 使用vue分页插件vue-pagination

    参考前辈的demo,所以先放上原demo的git地址:? https://github.com/cycgit/vu...

  • MyBatis之分页

    五、分页 目录:使用Limit分页、RowBounds分页、分页插件 1.使用Limit分页 语法: 使用MyBa...

  • 在vue中使用图片懒加载vue-lazyload插件

    在vue中使用图片懒加载vue-lazyload插件 使用方式 使用vue的 vue-lazyload 插件插件地...

  • Mybatis Plus 分页插件

    1. 在config文件里面新增分页插件 2. 在代码里使用分页插件

  • 模拟百度翻页

    做wikix项目的时候,要自己写一个翻页插件,整个架构是基于vue的,所以用vue来写一个分页插件分析一下百度分页...

  • 封装分页插件

    分页插件开发 1、分页插件的使用 2、分页插件的参数通常以表格的形式: 参数参数表示的意义data(必须写) 页面...

  • vue 分页删除最后一条数据,返回上一级的分页

    在VUE+element使用 Pagination 分页分页的时候 当数据较多时使用element中的分页功能...

  • Mybatis分页插件的使用流程

    如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件。该插件支持任何复杂的单表、多表分页。...

  • D4 springboot分页查询

    使用PageHelper分页插件实现分页 https://pagehelper.github.io/[http...

  • Vue 插件

    插件,通常用来为Vue 添加全局功能。引用官方文档Vue插件 使用插件 通过全局方法Vue.user()使用插件。...

网友评论

      本文标题:使用vue分页插件vue-pagination

      本文链接:https://www.haomeiwen.com/subject/bbvmgttx.html