vue.js ajax分页实例,vue.js表格分页示例

本文介绍了如何在Vue.js中创建一个独立的分页组件,并将其嵌入到表格组件中。分页组件通过监听当前页码变化,触发父组件的方法来更新数据。同时,展示了如何通过AJAX获取服务端数据并计算总页数,以及父子组件间如何通过事件进行通信。
摘要由CSDN通过智能技术生成

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

效果:

f4f7f30dbe0ca8c165729c478a0ecef4.png

代码:

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;

}

}

});

模板:

  • «
  • {{ index }}

  • »
  • {{all}}

HTML:

...

当点击分页链接的时候,通过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();

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值