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 相关文章推荐
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
Dec 23 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
Apr 19 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
May 08 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
Jan 23 Javascript
js实现String.Fomat的实例代码
Sep 02 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
Sep 28 Javascript
Javascript中arguments对象的详解与使用方法
Oct 04 Javascript
canvas实现手机端用来上传用户头像的代码
Oct 20 Javascript
JavaScript将base64图片转换成formData并通过AJAX提交的实现方法
Oct 24 Javascript
关于redux-saga中take使用方法详解
Feb 27 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
Sep 29 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
Nov 24 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 curl 伪造IP来源的实例代码
2012/11/01 PHP
php笔记之:AOP的应用
2013/04/24 PHP
php引用传值实例详解学习
2013/11/06 PHP
用PHP生成excel文件到指定目录
2015/06/22 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
php自定义时间转换函数示例
2016/12/07 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
2017/05/26 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
Jquery动态添加及删除页面节点元素示例代码
2014/06/16 Javascript
深入理解javascript作用域和闭包
2014/09/23 Javascript
jQuery插件datepicker 日期连续选择
2015/06/12 Javascript
浅析jquery数组删除指定元素的方法:grep()
2016/05/19 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
JS开发自己的类库实例分析
2019/08/28 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
Python中为什么要用self探讨
2015/04/14 Python
Python 实现链表实例代码
2017/04/07 Python
python pygame实现方向键控制小球
2019/05/17 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
Python基于yield遍历多个可迭代对象
2020/03/12 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
2021/03/03 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
手机端用rem+scss做适配的详解
2017/11/15 HTML / CSS
中科方德软件测试面试题
2016/04/21 面试题
2014年征兵标语
2014/06/20 职场文书
2014年幼师工作总结
2014/11/22 职场文书
2015年林业工作总结
2015/05/14 职场文书
医院党建工作总结2015
2015/05/26 职场文书
《鲸》教学反思
2016/02/23 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书
left join、inner join、right join的区别
2021/04/05 MySQL