<template>
<div class = 'car_list' reft='scrollobx' @scroll='scrollready($event)'>
</div>
</template>
<script>
export default {
data() {
return {
lengthThreshold: 50, //当滑动到距离低端50px时,更新数据
timeThreshold: 300,
promise: null
}
},
methods: {
// 滚动加载列表
scrollready() {
if(this.shouldScroll()) {
if (this.promise) {
return;
}
// 进行加载
this.fn();
// 防止多次滑动,频繁请求后台资源
let self = this;
this.promise = setTimeout(() => {
self.promise = null;
}, this.timeThreshold);
}
},
// 调用父组件请求资源服务
fn() {
this.$emit('scrollChange');
},
shouldScroll() {
if(document.scrollTop === 0) {// 滑动距离为0,还没开始滑动
return false;
}
// 列表高度 - 列表可视高度 - 滑动的高度 < 50px , 则加载更多
return this.$refs.scrollbox.scrollHeight - this.$refs.scrollbox.clientHeight - this.$refs.scrollbox.scrollTop < this.lengthThreshold;
},
}
}
</script>

父组件的请求服务方法:

queryCarApplyShareList() {
this.Load = true;
CarResources.methods.queryCarApplyShareList(this.http, this.pageNo, this.pageSize).then((res) => {
if (res && res.status === 200) {
if (this.pageNo === 1) { // 加载第一页数据
this.CarList = res.data || [];
} else { // 加载更多
this.CarList = this.CarList.concat(res.data);
}
this.IsLastPage = res.data.length === 0
}
this.Load = false;
}, () => {
this.Load = false;
console.log('接口报错');
});
},

  

纯JS实现加载更多(VUE框架)的更多相关文章

  1. 【Vue.js】加载更多—vue-infinite-scroll

    引言 今天用到了一个加载更多的插件,用起来很方便,插件的名字叫做vue-infinite-scroll 我们可以去npmjs.com官网看一下这个vue-infinite-scroll的用法,官网上面 ...

  2. 使用vue之directive设计列表加载更多

    背景 之前写过一篇<纯JS实现加载更多(VUE框架)>,它的逻辑思路比较清晰易懂,而今天看了一天公司项目的部分功能代码,发现同事们写的加载更多的功能更加的有趣,而且易于封装到一个组件当中, ...

  3. js实现『加载更多』功能实例

    DEMO : 滚动加载示例 关于如何实现『加载更多』功能,网上有插件可用,例如比较著名的使用iscroll.js实现的上拉加载更多.下拉刷新功能. 但实际用起来却是很麻烦.由于是第三方插件,要按照对方 ...

  4. React-Native 之 GD (七)下拉刷新 及 上拉加载更多

    1.下拉刷新  使用第三方插件 下载插件: $ npm install react-native-pull@latest --save 引入: import {PullList} from 'reac ...

  5. vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件

    vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件/库 一提到移动端的下拉刷新上拉翻页,你可能就会想到iScroll插件,没错iScroll是一个高性能,资源 ...

  6. 基于 Vue.js 的移动端组件库mint-ui实现无限滚动加载更多

    通过多次爬坑,发现了这些监听滚动来加载更多的组件的共同点, 因为这些加载更多的方法是绑定在需要加载更多的内容的元素上的, 所以是进入页面则直接触发一次,当监听到滚动事件之后,继续加载更多, 所以对于无 ...

  7. vue移动端上拉加载更多

    LoadMore.vue <template> <div class="load-more-wrapper" @touchstart="touchSta ...

  8. vue mpvue 上拉加载更多示例代码

    vue 上拉加载更多示例代码 可以比较简单的改为 mpvue , 去除滚动判断,直接放在 onReachBottom 周期即可. html <div id="app"> ...

  9. 关于Vue中页面(父组件)下拉,页面中的子组件加载更多数据的实现方法

    一个项目中存在很多这种情况:父组件(页面)中的子组件需要做下拉加载更多的需求,但是这个下拉到底部的动作只能通过监控页面(父组件)来完成 这就需要父子组件之间的通信,代码如下: 1. 建立一个用于父子组 ...

随机推荐

  1. Batch_Size对网络训练结果的影响

    最近在跑一些网络时发现,训练完的网络在测试集上的效果总是会受Batch_Size 大小的影响.这种现象跟以往自己所想象的有些出入,于是出于好奇,各种搜博客,大致得出了自己想要的答案,现写一篇博客记录一 ...

  2. 通过TensorFlow训练神经网络模型

    神经网络模型的训练过程其实质上就是神经网络参数的设置过程 在神经网络优化算法中最常用的方法是反向传播算法,下图是反向传播算法流程图: 从上图可知,反向传播算法实现了一个迭代的过程,在每次迭代的开始,先 ...

  3. 即时消息Toast和对话框

    public static Toast makeText(Context context, CharSequence text, int duration) protected void onDest ...

  4. 修改mysql登录密码

    通过cmd   登录进mysql系统后,输入 : set password for root@localhost = password('admin'); 其中admin  为新密码: 导入外部数据库 ...

  5. virtualenv虚拟环境

    1.你听过虚拟环境么? 虚拟:即不真实 环境:即周围的条件 那么到底什么事虚拟环境呢 2.虚拟环境 它是一个虚拟化,从电脑独立开辟出来的环境.通俗的来讲,虚拟环境就是借助虚拟机docker来把一部分内 ...

  6. 所有子节点、Procedure、MySQL

    在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点.但很遗憾,在MySQL的目前版本中还没有对应的功能. ...

  7. Linux 查找文件内容、替换

    有的时候我们经常性的需要在 linux 某一个目录下查找那些文件里包含我们需要查找的字符,那么这个时候就可以使用一些命令来查找,比如说 grep 1.grep 查询 1.1. 主要参数 [option ...

  8. Python Memo 赋值与ID (Assignment & id())

    利用Python内置函数id()找出内部地址,探讨赋值与内建地址. id()的官方解释:this is the address of the object in memory 那么 a =1 是什么意 ...

  9. JVM运行时数据区(一)

    1.名词解释: 栈帧:栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素. 2.程序计数器: 程序计数器是一块比较小的内存空间,可以将它看作是当前线程所执 ...

  10. zookeeper集群配置详细教程

      第一步:环境准备 环境 版本 说明 JDK 1.8 zookeeper运行所需 centos 7 操作系统 需要配置好JDK的环境变量 zookeeper-3.4.9.tar.gz 3.4.9 z ...