使用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>


相关文章
|
7天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
22 14
|
25天前
|
大数据 UED
「Mac畅玩鸿蒙与硬件16」鸿蒙UI组件篇6 - List 和 Grid 组件展示数据列表
List 和 Grid 是鸿蒙开发中的核心组件,用于展示动态数据。List 适合展示垂直或水平排列的数据列表,而 Grid 则适用于展示商品或图片的网格布局。本篇将展示如何封装组件,并通过按钮实现布局切换,提升界面的灵活性和用户体验。
60 9
「Mac畅玩鸿蒙与硬件16」鸿蒙UI组件篇6 - List 和 Grid 组件展示数据列表
|
9天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
26 10
|
1月前
|
索引 Python
List(列表)
List(列表)。
36 4
|
1月前
|
JavaScript 数据管理 虚拟化
ArkTS List组件基础:掌握列表渲染与动态数据管理
在HarmonyOS应用开发中,ArkTS的List组件是构建动态列表视图的核心。本文深入探讨了List组件的基础,包括数据展示、性能优化和用户交互,以及如何在实际开发中应用这些知识,提升开发效率和应用性能。通过定义数据源、渲染列表项和动态数据管理,结合虚拟化列表和条件渲染等技术,帮助开发者构建高效、响应式的用户界面。
193 2
|
6月前
|
安全 Java
java线程之List集合并发安全问题及解决方案
java线程之List集合并发安全问题及解决方案
1005 1
|
5月前
|
Java API Apache
怎么在在 Java 中对List进行分区
本文介绍了如何将列表拆分为给定大小的子列表。尽管标准Java集合API未直接支持此功能,但Guava和Apache Commons Collections提供了相关API。
|
5月前
|
运维 关系型数据库 Java
PolarDB产品使用问题之使用List或Range分区表时,Java代码是否需要进行改动
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
5月前
|
存储 安全 Java
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
|
6月前
|
Java API
使用 Java 来实现两个 List 的差集操作
使用 Java 来实现两个 List 的差集操作
204 3