vue.js 表格分页ajax 异步加载数据
作者:mrr 发布时间:2024-05-21 10:12:57
标签:vue.js,ajax,分页
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 值。
0
投稿
猜你喜欢
- 区别IE6与FF:background:orange;*background:blue;区别IE6与IE7:background:green
- 在使用DB2以来,碰到了几次出现提示SQL1032N错误,每次出错时出错信息大概如下:11/21/2004 22:15:33 0 0 SQL
- 三种解决方法: 1、改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mys
- 数据库开启慢查询日志修改配置文件在配置文件my.ini中加上下面两句话log-slow-queries = C:\xampp\mysql_s
- 一、修改 sonar 配置 conf/sonar.properties修改 sonar 配置文件 conf/sonar.properties
- 本文主要是讲解Spark在Windows环境是如何搭建的一、JDK的安装1、1 下载JDK首先需要安装JDK,并且将环境变量配置好,如果已经
- 第一种方法import sysimport unicodedatas = "Lǐ Zhōu Wú"remap = { #
- 获取页面的编码,如果是IE浏览器用document.charset即可获取,如果用firefox需要用document.characterS
- pytorch Backward过程用时太长问题描述使用pytorch对网络进行训练的时候遇到一个问题,forward阶段很快(只需要几毫秒
- 前言在本文中,我们将设计一个可以执行算术运算的解释器。我们不会重新造轮子。文章将使用由 David M. Beazley 开发的词法解析器
- 1.模型类中设置:null=True,表示数据库创建时该字段可不填,用NULL填充.MySQL:Null这一列,如果值为YES表示:创建一条
- 今天写了这样的代码 DECLARE @atr NVARCHAR(20) SET @atr = NULL IF(@atr = NULL) BE
- vue3给数组赋值丢失响应式的解决由于vue3使用proxy,对于对象和数组都不能直接整个赋值。只有push或者根据索引遍历赋值才可以保留r
- 1.打包多个py文件并且去除cmd黑框格式:pyinstaller.exe -F 路径\文件名.py空格路径\文件名.py空格--nocon
- 一、pycharm配置1、部署配置工具==》部署==》配置2、python解释器文件==》设置==》项目:xx==》python解释器3、运
- 一个带有 yield 的函数就是一个 generator,它和普通函数不同,生成一个 generator 看起来像函数调用,但不会执行任何函
- 今天在使用ORDER BY的过程中出现了一点问题,发现之前对ORDER BY理解是错误的。 之前在w3s网站上看到ORDER BY的用法,以
- 本文实例讲述了Python实现采用进度条实时显示处理进度的方法。分享给大家供大家参考,具体如下:前言在大多数时候,我们的程序会一直进行循环处
- 俄罗斯方块是俄罗斯人发明的一款休闲类的小游戏,这款小游戏可以说是很多人童年的主打电子游戏了,本文我们使用 Python 来实现这款小游戏。游
- Step 1:Creating a Linked Server. EXEC sp_addlinkedserver 'ADSI'