vue.js表格分页示例


Posted in Javascript onOctober 18, 2016

分页一般和表格一起用,分页链接作为表格的一部分,将分页链接封装成一个独立的组件,然后作为子组件嵌入到表格组件中,这样比较合理。

效果:

vue.js表格分页示例

代码:

1.注册一个组件

js

Vue.component('pagination',{
 template:'#paginationTpl',
 replace:true,
 props:['cur','all','pageNum'],
 methods:{
 //页码点击事件
 btnClick: function(index){
 if(index != this.cur){
  this.cur = index;
 }
 }
 },
 watch:{
 "cur" : function(val,oldVal) {
 this.$dispatch('page-to', val);
 }
 },
 computed:{
 indexes : function(){
 var list = [];
 //计算左右页码
 var mid = parseInt(this.pageNum / 2);//中间值
 var left = Math.max(this.cur - mid,1);
 var right = Math.max(this.cur + this.pageNum - mid -1,this.pageNum);
 if (right > this.all ) { right = this.all}
 while (left <= right){
  list.push(left);
  left ++;
 }
 return list;
 },
 showLast: function(){
 return this.cur != this.all;
 },
 showFirst: function(){
 return this.cur != 1;
 }
 }
 });

模板:

<script type="text/template" id="paginationTpl">
 <nav v-if="all > 1">
 <ul class="pagination">
 <li v-if="showFirst"><a href="javascript:" @click="cur--">«</a></li>
 <li v-for="index in indexes" :class="{ 'active': cur == index}">
 <a @click="btnClick(index)" href="javascript:">{{ index }}</a>
 </li>
 <li v-if="showLast"><a @click="cur++" href="javascript:">»</a></li>
 <li><a>共<i>{{all}}</i>页</a></li>
 </ul>
 </nav>
</script>

HTML:

<div id='item_list'>
 ...
 <pagination :cur="1" :all="pageAll" :page-num="10" @page-to="loadList"></pagination>
</div>

当点击分页链接的时候,通过watch cur,子组件分发 page-to 事件,通过 @page-to="loadList" 标签指定使用父组件 loadList 方法处理事件,父组件接收到page值然后ajax加载数据,根据服务端返回计算并更新自身的 pageAll 值,因为子组件prop通过 :all="pageAll" 动态绑定了父组件的pageAll对象,所以子组件会联动更新。

附上一个简单的表格组件例子:

var vm = new Vue({
 el: "#item_list",
 data: {
 items : [],
 //分页参数
 pageAll:0, //总页数,根据服务端返回total值计算
 perPage:10 //每页数量
 },
 methods: {
 loadList:function(page){
 var that = this;
 $.ajax({
  url : "/getList",
  type:"post",
  data:{"page":page,"perPage":this.perPage},
  dataType:"json",
  error:function(){alert('请求列表失败')},
  success:function(res){
  if (res.status == 1) {
  that.items = res.data.list;
  that.perPage = res.data.perPage;
  that.pageAll = Math.round(res.data.total / that.perPage);//计算总页数
  }
  }
 });
 },
 //初始化
 init:function(){
 this.loadList(1);
 }
 }
 });
 vm.init();

精彩专题分享:jquery分页功能操作 JavaScript分页功能操作

本文已被整理到了《Vue.js前端组件学习教程》,欢迎大家学习阅读。

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

Javascript 相关文章推荐
jquery实现导航固定顶部的效果仿蘑菇街
Oct 22 Javascript
javascript基本包装类型介绍
Apr 10 Javascript
JS组件中bootstrap multiselect两大组件较量
Jan 26 Javascript
Bootstrap风格的WPF样式
Dec 07 Javascript
vue2.0父子组件及非父子组件之间的通信方法
Jan 21 Javascript
详解Sea.js中Module.exports和exports的区别
Feb 12 Javascript
javascript实现日期三级联动下拉框选择菜单
Dec 03 Javascript
JS查找数组中重复元素的方法详解
Jun 14 Javascript
vue中keep-alive组件的入门使用教程
Jun 06 Javascript
Vue3.0 响应式系统源码逐行分析讲解
Oct 14 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
Nov 25 Javascript
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
May 19 jQuery
Angular.js中用ng-repeat-start实现自定义显示
Oct 18 #Javascript
Bootstrap框架的学习教程详解(二)
Oct 18 #Javascript
微信小程序 教程之WXSS
Oct 18 #Javascript
微信小程序 教程之引用
Oct 18 #Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
Oct 18 #Javascript
微信小程序 教程之事件
Oct 18 #Javascript
微信小程序 教程之模板
Oct 18 #Javascript
You might like
PHPMailer安装方法及简单实例
2008/11/25 PHP
一个很不错的PHP翻页类
2009/06/01 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
2016/10/17 PHP
laravel实现上传图片并在页面显示的例子
2019/10/14 PHP
接收键盘指令的脚本
2006/06/26 Javascript
用javascript动态调整iframe高度的代码
2007/04/10 Javascript
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
prettify 代码高亮着色器google出品
2010/12/28 Javascript
基于KMP算法JavaScript的实现方法分析
2013/05/03 Javascript
js获取图片宽高的方法
2015/11/25 Javascript
javascript中闭包(Closure)详解
2016/01/06 Javascript
Node.js实现数据推送
2016/04/14 Javascript
详解webpack+angular2开发环境搭建
2017/06/28 Javascript
浅谈react前后端同构渲染
2017/09/20 Javascript
基于layui数据表格以及传数据的方式
2018/08/19 Javascript
解决vuex改变了state的值,但是页面没有更新的问题
2020/11/12 Javascript
Python中bisect的用法
2014/09/23 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
应用OpenCV和Python进行SIFT算法的实现详解
2019/08/21 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
python3通过udp实现组播数据的发送和接收操作
2020/05/05 Python
python 操作excel表格的方法
2020/12/05 Python
美国在线家装零售商:Build.com
2016/09/02 全球购物
文员岗位职责
2013/11/09 职场文书
大学生军训广播稿
2014/01/24 职场文书
大学生创业策划书
2014/02/02 职场文书
《雕塑之美》教学反思
2014/04/24 职场文书
美德少年事迹材料1000字
2014/08/21 职场文书
检察院院长群众路线教育实践活动个人整改措施
2014/10/04 职场文书
房屋过户委托书范本
2014/10/07 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
群众路线领导班子整改方案
2014/10/25 职场文书
入党群众意见范文
2015/06/02 职场文书
能让Python提速超40倍的神器Cython详解
2021/06/24 Python
java多态注意项小结
2021/10/16 Java/Android