VUE_vant上拉加载请求接口数据使用

使用:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Vant</title>
    <script src='https://cdn.jsdelivr.net/npm/vue/dist/vue.js'></script>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vant@2.12/lib/index.css"/>
    <script src='https://cdn.jsdelivr.net/npm/vant@2.12/lib/vant.min.js'></script>
    <!-- <script src="https://unpkg.com/axios/dist/axios.min.js"></script> -->
    <script src="https://cdn.bootcdn.net/ajax/libs/axios/0.21.0/axios.min.js"></script>
</head>

<body>
    <div id="app">

        <van-list
            v-model="loading"
            :finished="finished"
            finished-text="没有更多了"
            :immediate-check="false"
            @load="onLoad"
            >
            <div style="width: 100%;height: 100px;background: red;margin-top: 2px;"
                v-for="item in list" :key="item.id">
                {{item.name}}
            </div>
        </van-list>

    </div>
</body>
</html>

<script>
    var vm = new Vue({
        el: '#app',
        data: {
            list: [],           //数据列表
            loading: false,     //是否处于加载状态,加载过程中不触发load事件
            finished: false,    //是否已加载完成,加载完成后不再触发load事件
            updata:{
                pageNumber: 1,  //页码
                pageSize:10     //每页条数
            }
        },
        created() {
            this.getroadList()
        },
        methods: {
            getroadList() {
                axios.get('http://192.168.0.139/cUser', {           //请求接口
                    params: this.updata
                }).then( (res)=> {
                    let list = res.data.data.list
                    this.loading = false;               //是否处于加载状态,加载过程中不触发load事件
                    if (list == null || list.length === 0) {
                        this.finished = true;           // 加载结束
                        return;
                    }
                    this.list = this.list.concat(list); // 将新数据与老数据进行合并
                })
                .catch( (error)=> {
                    console.log(error);
                });
                
            },
            onLoad() {
                this.updata.pageNumber++;
                this.getroadList();
            },
        }
    });
</script>

注意:

设置<van-list>组件 :immediate-check="false"
理由:禁止 List 初始化时触发 load 事件。把加载第一屏的事件放在 created() 里面。

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值