vue滚动分页加载
做了一个项目,要求将后台数据滚动加载。
滚动加载必须要求后台传的接口中由pageSize和pageIndex两个参数,来判断每次传数据的条数和数据的页码。
首先要判断滑轮是向上滚动还是向下滚动,可以在data里设一个变量scrollJudge存储旧的scrollTop,每次滚动事件时都要先判断是否小于新的scrollTop并记录下新scrollTop。若小于,则滑轮向下滚动。
判断滚动分页加载的时机:什么时候加载下一页?在滚动上去的高度scrollTop加上显示的数据的高度offsetHeight加上我们设置的预留的底部高度(假设为200)之和大于或等于已经加载出来的数据的总高度的时候,就申请加载下一页。已经加载出来的数据的总高度可以用 e.target.childNodes[0].clientHeight 求得。e.target 是滚动事件源,滚动加载函数就绑定在这层容器上,这层容器要设置高度,超出高度时显示滚动条,在它内部另设一个容器,不设高度,高度会由数据自行撑开。e.target.childNodes[0] 就代表这层不设高度的容器,可以由求得其高度。
新修改: 获取子容器高度 clientHeight 可以不再用 e.target.childNodes[0] 推了,可以给子容器设置ref,使用this.$refs获取。

要提前设置一个page全局变量为1,每次滚动加载后就给page加上1,当作参数传给申请后台数据的接口函数,来说明该传第几页数据出来。注意要提前设置全局变量空数组scrollList,每次接收数据后都要把接收的数据传进这个空数组。在html里用v-for遍历这个数组就可以将数据显示出来了。

每次接收数据结束后,都要判断接收过来的数据的长度,若小于pageSize,就说明数据传输结束,停止page自加,停止调用申请数据的函数。可以用一个全局变量pageBack来存储每次返回的数据长度,当它等于零时,停止滚动加载。

注:每次切换新的滚动页面都要把page,scrollList,pageBack,scrollJudge等数据回复初始值。

额外问题:一开始把el-dialog也放进v-for里了,导致每次一点出来他都加载20遍的倍数,其实el-dialog不用放进for循环里,只要控制它的el-button放进去就好了。
vue滚动分页加载的更多相关文章
- vue滚动分页加载以及监听事件处理
<template> <div class="bodyContainer"> <div class="allContent" id ...
- 微信小程序实现滚动分页加载更多
参考网址:https://www.cnblogs.com/Smiled/p/8203306.html 1.wxml: <view class='myScroll' style='float:le ...
- vue.js 分页加载,向上滑动,依次加载数据。
export default { layout: 'default', data(){ return{ page:1, pageSize:10, orderListArr:[], prodListLo ...
- div滚动底部加载li,window滚动底部加载li
DIV固定高度滚动条滚动最底部,加载新的li <!DOCTYPE html> <html> <head> <meta charset="UTF-8& ...
- Android基本控件之listView(三)<用ListView实现分页加载>
我们之前讨论了ListView的基本使用方法和ListView的优化 今天我们再来讨论一个关于ListView的一个新的东西~就是分页加载.那么什么是分页加载呢?简单点说,就是"下拉刷新&q ...
- 【Android进阶】Listview分页加载数据的实现
Listview分页加载数据的实现 public class MainActivity extends Activity { protected static final int SUCCESS_GE ...
- [转]微信小程序之加载更多(分页加载)实例 —— 微信小程序实战系列(2)
本文转自;http://blog.csdn.net/michael_ouyang/article/details/56846185 loadmore 加载更多(分页加载) 当用户打开一个页面时,假设后 ...
- Vue图片懒加载插件
图片懒加载是一个很常用的功能,特别是一些电商平台,这对性能优化至关重要.今天就用vue来实现一个图片懒加载的插件. 这篇博客采用"三步走"战略--Vue.use().Vue.dir ...
- ListView实现分页加载(三)实现分页加载
在上一篇中,我们实现了底部布局(即带上了进度条).没有读过的朋友可以点击下面的链接: http://www.cnblogs.com/fuly550871915/p/4866966.html 但是进度条 ...
随机推荐
- Linux下使用Google Authenticator配置SSH登录动态验证码
1.一般ssh登录服务器,只需要输入账号和密码.2.本教程的目的:在账号和密码之间再增加一个验证码,只有输入正确的验证码之后,再输入密码才能登录.这样就增强了ssh登录的安全性.3.账号.验证码.密码 ...
- web服务器-nginx优化
web服务器-nginx优化 一 并发优化 nginx工作模式: 主进程 + 工作进程 启动工作进程数量 worker_processes 4; #指定运行的核的编号,采用掩码的方式设置编号 work ...
- [SPDK/NVMe存储技术分析]007 - 初识UIO
注: 要进一步搞清楚SSD盘对应的PCI的BAR寄存器的映射,有必要先了解一下UIO(Userspace I/O). UIO(Userspace I/O)是运行在用户空间的I/O技术.在Linux系统 ...
- LCT板子
粘板子: #include<cstdio> #include<cstring> #include<algorithm> using namespace std; c ...
- CF932G Palindrome Partition(回文自动机)
CF932G Palindrome Partition(回文自动机) Luogu 题解时间 首先将字符串 $ s[1...n] $ 变成 $ s[1]s[n]s[2]s[n-1]... $ 就变成了求 ...
- JavaScript day03 循环
循环 while循环 循环是重复性做一件事情 没有办法控制每次循环的时间长度 循环会增大程序时间复杂度(不建议无限循环嵌套 一般情况下不会嵌套超过两次) 死循环 是不会停止的循环 会导致电脑内存溢出 ...
- 常见的反爬措施:UA反爬和Cookie反爬
摘要:为了屏蔽这些垃圾流量,或者为了降低自己服务器压力,避免被爬虫程序影响到正常人类的使用,开发者会研究各种各样的手段,去反爬虫. 本文分享自华为云社区<Python爬虫反爬,你应该从这篇博客开 ...
- SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(转载)
SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本) 转载请标明出处:http://blog.csdn.net/forezp/article/details ...
- spring cloud 和dubbo区别?
1.服务调用方式 dubbo是RPC springcloud Rest Api2.注册中心,dubbo 是zookeeper springcloud是eureka,也可以是zookeeper3.服务网 ...
- 通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应, 请问,这个 Dao 接口的工作原理是什么?Dao 接口里的方法, 参数不同时,方法能重载吗?
Dao 接口即 Mapper 接口.接口的全限名,就是映射文件中的 namespace 的值: 接口的方法名,就是映射文件中 Mapper 的 Statement 的 id 值:接口方法内的 参数,就 ...