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

 更新时间:2019年10月14日 09:27:50   作者:彭胜光  
这篇文章主要介绍了基于JS实现父组件的请求服务过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了基于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('接口报错');
  });
},

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

相关文章

  • JS 实现Json查询的方法实例

    JS 实现Json查询的方法实例

    曾经看过一个大牛写的实现Json的一个模板类,今天突然没事就来自己试着写写。还好,一些东西还记得,思路还算清晰。直接上代码了
    2013-04-04
  • 基于javascript实现按圆形排列DIV元素(二)

    基于javascript实现按圆形排列DIV元素(二)

    本篇文章主要介绍基于javascript实现按圆形排列DIV元素的方法,此文着重于介绍怎样实现的按圆形排列DIV元素的运动原理和实现效果代码,需要的朋友来看下吧
    2016-12-12
  • Javascript怎样使用SessionStorage和LocalStorage

    Javascript怎样使用SessionStorage和LocalStorage

    这篇文章主要介绍了Javascript怎样使用SessionStorage和LocalStorage,对web存储数据感兴趣的同学,可以参考下
    2021-04-04
  • JavaScript实现select添加option

    JavaScript实现select添加option

    这篇文章主要介绍了JavaScript为select添加option的方法和示例,十分的简单实用,有需要的小伙伴可以参考下。
    2015-07-07
  • js生成的验证码的实现与技术分析

    js生成的验证码的实现与技术分析

    本文主要是分享了一段由JS生成验证码并验证的代码,非常简单,并分析了此方法的实用性,提供给大家参考下
    2014-09-09
  • 微信小程序实现横向滚动条

    微信小程序实现横向滚动条

    这篇文章主要为大家详细介绍了微信小程序实现横向滚动条,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • Vue项目中关于全局css的处理

    Vue项目中关于全局css的处理

    我们在写CSS的时候,会遇到大量相同的属性(比如:margin-top:10px)这种属性几乎每个vue页面都有。这个时候,我们可以把css挂载到全局上,供所有vue页面使用,同时也方便修改。感兴趣的同学可以参考一下
    2023-04-04
  • javascript中Date()函数在各浏览器中的显示效果

    javascript中Date()函数在各浏览器中的显示效果

    本文给大家分享的是javascript中Date()函数在各浏览器中的显示效果,由于各大浏览器的兼容性问题,本文做了这个测试,希望有需要的小伙伴可以少走些弯路
    2015-06-06
  • JavaScript web表单功能交流干货满满

    JavaScript web表单功能交流干货满满

    表单通常用来收集网页访问者信息,常见的表单比如搜索引擎的搜索框、各网页应用的注册或者登陆界面等。一个表单通常包括多个表单控件
    2021-10-10
  • js定时器怎么写?就是在特定时间执行某段程序

    js定时器怎么写?就是在特定时间执行某段程序

    定时器想必大家并不陌生吧,在本文为大家详细介绍下js中是如何实现定时器的,具体原理及代码如下,感兴趣的朋友不要错过
    2013-10-10

最新评论