zoukankan      html  css  js  c++  java
  • 纯JS实现加载更多(VUE框架)

    <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('接口报错');
           });
    },
    

      

    不安逸,不浮躁,牛B就是一个学习累积的过程
  • 相关阅读:
    Two Sum
    Longest Common String
    Maximum Subarray
    Copy List with Random Pointer
    Convert Binary Search Tree to Doubly Linked List
    Fast Power
    Centos7安装ELK Cyrus
    IPv6实验 OSPFv3
    IPv6笔记和实验 RIPng
    IPv6 ICMPv6笔记
  • 原文地址:https://www.cnblogs.com/pengshengguang/p/7815589.html
Copyright © 2011-2022 走看看