vue.js 表格分页ajax 异步加载数据


Posted in Javascript onOctober 18, 2016

Vue.js是一个轻巧、高性能、可组件化的MVVM库,同时拥有非常容易上手的API。

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

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 = this.cur - mid;
var right = Math.max(this.cur + this.pageNum - mid -1,this.pageNum);
if (left < 1) {left = 1}
if (right > this.all ) { right = this.all}
while (left <= right){
list.push(left)
left ++
}
return list;
},
showLast: function(){
if(this.cur == this.all){
return false
}
return true
},
showFirst: function(){
if(this.cur == 1){
return false
}
return true
}
}
});

模板:

<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='parentEle'>
...
<pagination :cur="1" :all="pageAll" :page-num="10" @page-to="loadList"></pagination>
</div>

当点击分页链接的时候,会触发

page-to

事件,而我们在html标签中指定了使用父组件

loadList

方法处理事件,我们只要在组件中把当前页码传给父组件即可,父组件负责ajax加载数据,并更新自身的 pageAll 值。

Javascript 相关文章推荐
让你的网站可编辑的实现js代码
Oct 19 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
Oct 11 Javascript
深入理解javascript中return的作用
Dec 30 Javascript
js解析json读取List中的实体对象示例
Mar 11 Javascript
AngularJS基础知识
Dec 21 Javascript
JavaScript中constructor()方法的使用简介
Jun 05 Javascript
浅谈js的url解析函数封装
Jun 28 Javascript
详解基于angular路由的requireJs按需加载js
Jan 20 Javascript
js 输入框 正则表达式(菜鸟必看教程)
Feb 19 Javascript
JavaScript队列的应用实例详解【经典数据结构】
Apr 12 Javascript
Javascript数组方法reduce的妙用之处分享
Jun 10 Javascript
pageGroup.js实现分页功能
Jul 27 Javascript
vue.js表格分页示例
Oct 18 #Javascript
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
You might like
PHP 字符串分割和比较
2009/10/06 PHP
详解PHP中的PDO类
2015/07/06 PHP
php处理静态页面:页面设置缓存时间实例
2017/06/22 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
编写可维护面向对象的JavaScript代码[翻译]
2011/02/12 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
JS分割字符串并放入数组的函数
2011/07/04 Javascript
使用jQuery validate 验证注册表单实例演示
2013/03/25 Javascript
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
2013/05/07 Javascript
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
轻松搞定jQuery.noConflict()
2016/02/15 Javascript
页面get请求 中文参数方法乱码问题的快速解决方法
2016/05/31 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
如何使用headjs来管理和异步加载js
2016/11/29 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
JavaScript实现图片懒加载的方法分析
2018/07/05 Javascript
mpvue 如何使用腾讯视频插件的方法
2018/07/16 Javascript
一文了解Vue中的nextTick
2019/05/06 Javascript
微信小程序返回箭头跳转到指定页面实例解析
2019/10/08 Javascript
基于javascript实现贪吃蛇小游戏
2019/11/25 Javascript
[02:07]2018DOTA2亚洲邀请赛主赛事第三日五佳镜头 fy极限反杀
2018/04/06 DOTA
深入解析Python中的WSGI接口
2015/05/11 Python
django自带调试服务器的使用详解
2019/08/29 Python
Python 发送邮件方法总结
2020/08/10 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
python time.strptime格式化实例详解
2021/02/03 Python
入党思想汇报
2014/01/05 职场文书
大学生职业生涯规划范文
2014/01/08 职场文书
光荣入党自我鉴定
2014/01/22 职场文书
舞蹈比赛获奖感言
2014/02/04 职场文书
部门群众路线教育实践活动对照检查材料思想汇报
2014/10/07 职场文书
简单谈谈Python面向对象的相关知识
2021/06/28 Python
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android