使用Vant框架的组件van-pull-refresh搭配van-list和van-card完成上滑加载更多列表数据,下拉刷新当前列表数据(等同于翻页功能)

简介: 使用Vant框架的组件van-pull-refresh搭配van-list和van-card完成上滑加载更多列表数据,下拉刷新当前列表数据(等同于翻页功能)


<template>
    <div class="sg-page-body">
        <div class="sg-list">
            <van-pull-refresh v-model="pullLoading" @refresh="onPullRefresh" success-text="刷新成功">
                <van-list v-model="listLoading" @load="onLoadList" :finished="finishedList" finished-text="没有更多了">
                    <van-card v-for="(item,$index) in list" :key="$index">{{item.label}}</van-card>
                </van-list>
            </van-pull-refresh>
        </div>
    </div>
</template>
 
<script>
    export default {
        data() {
            return {
                list: [], //列表数组
                listLoading: false, //上滑列表加载(每一次上滑的时候)
                finishedList: false, //上滑列表加载完了所有数据(没有更多了)
                pullLoading: false, //下拉刷新加载动画
                start: 0, //从第1页开始
                limit: 10, //每页10条数据累加
                qylx: ""
            };
        },
        methods: {
            //下拉刷新列表■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
            onPullRefresh() {
                this.list = [];
                this.start = 0;
                this.finishedList = false;
                this.onLoadList();
            },
            //上滑加载列表________________________
            onLoadList() {
                // 异步更新数据
                if (this.finishedList) return;
                var data = {
                    start: this.start,
                    limit: this.limit,
                    qylx: this.qylx
                };
                this.$d.API_NAME(data, {
                    success: d => {
                        /*这里写代码*/
                        this.list = this.list.concat(d);
                        this.pullLoading = this.listLoading = false; // 加载和下拉状态结束
                        this.finishedList = d.length === 0; //上滑列表加载完了所有数据(没有更多了)
                    }
                });
                this.start++;
            }
            // ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
        }
    };
</script>


相关文章
|
8月前
|
人工智能 Java
Java 中数组Array和列表List的转换
本文介绍了数组与列表之间的相互转换方法,主要包括三部分:1)使用`Collections.addAll()`方法将数组转为列表,适用于引用类型,效率较高;2)通过`new ArrayList&lt;&gt;()`构造器结合`Arrays.asList()`实现类似功能;3)利用JDK8的`Stream`流式计算,支持基本数据类型数组的转换。此外,还详细讲解了列表转数组的方法,如借助`Stream`实现不同类型数组间的转换,并附带代码示例与执行结果,帮助读者深入理解两种数据结构的互转技巧。
545 1
Java 中数组Array和列表List的转换
|
10月前
|
前端开发 JavaScript UED
React 拖拽排序组件 Draggable List
在现代Web应用中,拖拽排序功能显著提升用户体验。使用React结合`react-dnd`库,可以轻松创建高效且易于维护的拖拽排序组件。通过简单的拖拽操作,用户能直观调整列表项顺序,适用于任务管理、看板工具等场景。实现步骤包括项目初始化、安装依赖、创建基础组件、添加拖拽功能及管理状态和事件。常见问题如拖拽效果不流畅、顺序未更新等可通过性能优化、正确处理索引交换等方式解决。移动端支持也需考虑,确保跨平台的良好体验。
677 25
|
12月前
|
大数据 UED
「Mac畅玩鸿蒙与硬件16」鸿蒙UI组件篇6 - List和Grid组件展示数据列表
List 和 Grid 是鸿蒙开发中的核心组件,用于展示动态数据。List 适合展示垂直或水平排列的数据列表,而 Grid 则适用于展示商品或图片的网格布局。本篇将展示如何封装组件,并通过按钮实现布局切换,提升界面的灵活性和用户体验。
687 9
「Mac畅玩鸿蒙与硬件16」鸿蒙UI组件篇6 - List和Grid组件展示数据列表
|
11月前
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
242 9
|
11月前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
296 14
|
11月前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
895 10
|
安全 Java
java线程之List集合并发安全问题及解决方案
java线程之List集合并发安全问题及解决方案
1340 1
|
运维 关系型数据库 Java
PolarDB产品使用问题之使用List或Range分区表时,Java代码是否需要进行改动
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
Java API Apache
怎么在在 Java 中对List进行分区
本文介绍了如何将列表拆分为给定大小的子列表。尽管标准Java集合API未直接支持此功能,但Guava和Apache Commons Collections提供了相关API。
380 1
|
存储 安全 Java
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
275 3

热门文章

最新文章