基于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 相关文章推荐
Javascript实现CheckBox的全选与取消全选的代码
Jul 20 Javascript
jquery Mobile入门—外部链接切换示例代码
Jan 08 Javascript
面向对象继承实例(a如何继承b问题)(自写)
Jul 01 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
Sep 22 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
Sep 29 Javascript
javaScript中封装的各种写法示例(推荐)
Jul 03 Javascript
javascript ES6 新增了let命令使用介绍
Jul 07 Javascript
微信小程序 获取javascript 里的数据
Aug 17 Javascript
解决npm管理员身份install时出现权限的问题
Mar 16 Javascript
基于vue中的scoped坑点解说
Sep 04 Javascript
Vue.js暴露方法给WebView的使用操作
Sep 07 Javascript
jQuery实现简单弹幕制作
Dec 10 jQuery
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
PHP 和 MySQL 基础教程(二)
2006/10/09 PHP
PHP中strtotime函数使用方法详解
2011/11/27 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
2017/02/04 PHP
input 和 textarea 输入框最大文字限制的jquery插件
2011/10/27 Javascript
javascript中验证大写字母、数字和中文
2014/01/15 Javascript
基于jquery实现表格内容筛选功能实例解析
2016/05/09 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
Node.js DES加密的简单实现
2016/07/07 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
js实现删除li标签一行内容
2019/04/16 Javascript
vue-router 中 meta的用法详解
2019/11/01 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
如何基于jQuery实现五角星评分
2020/09/02 jQuery
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[01:07:53]RNG vs VG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[01:59][TI9趣味视频] 全明星赛奖励
2019/08/23 DOTA
[36:16]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.19
2020/12/24 DOTA
Python中的列表生成式与生成器学习教程
2016/03/13 Python
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
python实现人民币大写转换
2018/06/20 Python
python for循环remove同一个list过程解析
2019/08/14 Python
Python lambda表达式filter、map、reduce函数用法解析
2019/09/11 Python
NumPy排序的实现
2020/01/21 Python
学习Python列表的基础知识汇总
2020/03/10 Python
python多进程使用函数封装实例
2020/05/02 Python
浅谈Html5移动端ios/Android兼容性总结
2018/06/01 HTML / CSS
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
一套比较完整的软件测试人员面试题
2012/05/13 面试题
Vector, ArrayList, HashTable, HashMap哪些是线程安全的,哪些不是
2015/10/12 面试题
写自荐信有哪些不宜?
2013/10/17 职场文书
班干部演讲稿
2014/04/24 职场文书
mysq启动失败问题及场景分析
2021/07/15 MySQL