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


相关文章
|
21天前
|
JavaScript 前端开发
构建一个待办事项列表(To-Do List)应用程序
构建一个待办事项列表(To-Do List)应用程序
|
9天前
|
存储 索引 Python
多数pythoneer只知有列表list却不知道python也有array数组
多数pythoneer只知有列表list却不知道python也有array数组
17 0
|
13天前
四种解决”Arg list too long”参数列表过长的办法
这些方法都可以帮助你避免因参数列表过长而导致的错误。选择方法取决于具体情况和需求。
12 0
|
16天前
|
索引 容器
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
|
2月前
|
存储 安全 Java
java集合框架及其特点(List、Set、Queue、Map)
java集合框架及其特点(List、Set、Queue、Map)
|
1月前
|
Java
Java使用List去重的四中方式
Java使用List去重的四中方式
19 6
|
2月前
|
Java
JAVA——List中剔除空元素(null)的三种方法汇总
JAVA——List中剔除空元素(null)的三种方法汇总
|
2月前
|
安全 Java API
Java并发 - J.U.C并发容器类 list、set、queue
Queue API 阻塞是通过 condition 来实现的,可参考 Java 并发 - Lock 接口 ArrayBlockingQueue 阻塞 LinkedBlockingQueue 阻塞 ArrayQueue 非阻塞 LinkedQueue 非阻塞
|
2月前
|
存储 安全 Java
【Java】集合(一)单列集合List
【Java】集合(一)单列集合List
22 0
|
2月前
|
Java API
java 对象list 使用stream进行过滤
在Java中,你可以使用Stream API对对象列表进行过滤。假设你有一个`List<MyObject>`,并且你想根据某些条件过滤出特定的对象。以下是一个示例: ```java import java.util.List; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<MyObject> myObjects = ... // 初始化你的对象列表 List<MyObject> filter