vue实现一个分页组件
2017-11-30 15:54
856 查看
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>vue-router</title> <script src="./vue.js" ></script> <style> 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; } </style> </head> <body> <script type="text/x-template" id="page"> <ul class="pagination" > <li v-show="current != 1" @click="current-- && goto(current)" ><a href="#">上一页</a></li> <li v-for="index in pages" @click="goto(index)" :class="{'active':current == index}" :key="index"> <a href="#" >{{index}}</a> </li> <li v-show="allpage != current && allpage != 0 " @click="current++ && goto(current++)"><a href="#" >下一页</a></li> </ul> </script> <div id="app"> <page></page> </div> <script> Vue.component("page",{ template:"#page", data:function(){ return{ current:1, showItem: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> </body> </html>
相关文章推荐
- VUE实现一个分页组件
- VUE实现一个分页组件的示例
- Vue.js实现一个自定义分页组件vue-paginaiton
- VUE实现一个分页组件
- Vue.js学习 Item16 – 实现一个自定义分页组件vue-paginaiton
- Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页功能
- 动手实现一个vue中的模态对话框组件
- vue的一个分页组件的示例代码
- 利用vue组件自定义v-model实现一个Tab组件方法示例
- 使用Vue组件实现一个简单弹窗效果
- Vue2.0+ElementUi封装table组件实现分页功能
- vue.js 组件实现简单分页效果
- Vue 2.0 制作列表组件,实现分页、搜索、批量操作等
- Vue组件BootPage实现简单的分页功能
- 工作笔记五——自己实现一个Vue的下拉刷新组件
- 基于vue2.0的一个分页组件
- Vue 2.0 制作列表组件,实现分页、搜索、批量操作等
- Vue.js实现一个漂亮、灵活、可复用的提示组件示例
- 基于vue实现分页/翻页组件paginator示例
- Vue全局分页组件的实现代码