基于JS实现父组件的请求服务过程解析


Posted in Javascript onOctober 14, 2019

这篇文章主要介绍了基于JS实现父组件的请求服务过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

<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;
    }<br data-filtered="filtered">    // 列表高度 - 列表可视高度 - 滑动的高度 < 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 = <strong>this.CarList.concat(res.data);</strong>
    }
    this.IsLastPage = res.data.length === 0
   }
   this.Load = false;
  }, () => {
   this.Load = false;
   console.log('接口报错');
  });
},

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
fromCharCode和charCodeAt 方法
Dec 27 Javascript
jQuery ui 1.7更新小结
Aug 15 Javascript
jquery监控数据是否变化(修正版)
Apr 12 Javascript
jquery 提示信息显示后自动消失的具体实现
Dec 18 Javascript
jquery each的几种常用的使用方法示例
Jan 21 Javascript
jQuery实现统计输入文字个数的方法
Mar 11 Javascript
JavaScript用select实现日期控件
Jul 17 Javascript
深入剖析JavaScript编程中的对象概念
Oct 21 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
Aug 08 Javascript
Vue 2.x教程之基础API
Mar 06 Javascript
详解vue+webpack+express中间件接口使用
Jul 17 Javascript
node中短信api实现验证码登录的示例代码
Jan 20 Javascript
JavaScript this在函数中的指向及实例详解
Oct 14 #Javascript
vue循环数组改变点击文字的颜色
Oct 14 #Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
Oct 14 #Javascript
VUE+node(express)实现前后端分离
Oct 13 #Javascript
javascript sort()对数组中的元素进行排序详解
Oct 13 #Javascript
javaScript把其它类型转换为Number类型
Oct 13 #Javascript
js 实现watch监听数据变化的代码
Oct 13 #Javascript
You might like
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
PHP的简易冒泡法代码分享
2012/08/28 PHP
PHP不用第三变量交换2个变量的值的解决方法
2013/06/02 PHP
php中过滤非法字符的具体实现
2013/10/29 PHP
Smarty日期时间操作方法示例
2016/11/15 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
PHPUnit + Laravel单元测试常用技能
2019/11/06 PHP
phpstudy2020搭建站点的实现示例
2020/10/30 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
setTimeout和setInterval的深入理解
2013/11/08 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
jQuery队列操作方法实例
2014/06/11 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
JavaScript事件委托用法分析
2015/01/24 Javascript
js+html5通过canvas指定开始和结束点绘制线条的方法
2015/06/05 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
2015/12/25 Javascript
浅析JavaScript中浏览器的兼容问题
2016/04/19 Javascript
angular十大常见问题
2017/03/07 Javascript
input 标签实现输入框带提示文字效果(两种方法)
2017/10/09 Javascript
基于Vue SEO的四种方案(小结)
2019/07/01 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
微信小程序进入广告实现代码实例
2019/09/19 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
python高手之路python处理excel文件(方法汇总)
2016/01/07 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
CSS3制作气泡对话框的实例教程
2016/05/10 HTML / CSS
阿波罗盒子:Apollo Box
2017/08/14 全球购物
师德师风个人整改措施
2014/10/27 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
2015年教务主任工作总结
2015/07/22 职场文书
纯 CSS 自定义多行省略的问题(从原理到实现)
2021/11/11 HTML / CSS