首页 > 其他分享 >uniapp上拉加载更多

uniapp上拉加载更多

时间:2023-09-23 15:44:29浏览次数:50  
标签:uniapp isLoadMore res 上拉 data page 加载

<template>
    <view class="container">
        <view v-for="(item,index) in videoList" :key="index"> 
            <label style="display: block;width: 100%; height: 40px; background-color: saddlebrown;" >{{item}}</label>
        </view>  
        <view v-show="isLoadMore"> //loading加载提示处
            <uni-load-more :status="loadStatus"></uni-load-more>
        </view>
    </view>
</template>

<script>
    export default {
        data() {
            return {
                //列表
                videoList: ["1","2","3","4","1","2","3","4","1","2","3","4","1","2","3","4"],

                page: 1,
                pagesize: 10,
                loadStatus: 'loading', //加载样式:more-加载前样式,loading-加载中样式,nomore-没有数据样式
                isLoadMore: false, //是否加载中
            };
        },
        onl oad() {
            this.getVideoList()
        },

        onReachBottom() { //上拉触底函数
            console.log("上拉触底了。。。")
            if (!this.isLoadMore) { //此处判断,上锁,防止重复请求
                this.isLoadMore = true
                this.page += 1
                this.getVideoList()
            }
        },

        methods: {
            getVideoList() {
                uni.request({
                    url: `${this.$baseUrl}/api-video/getlist?page=${this.page}&pagesize=${this.pagesize}`,
                    method: 'GET',
                    success: res => {
                        if (res.data.code == 200) {
                            if (res.data.data.list) {
                                this.videoList = this.videoList.concat(res.data.data.list)
                                if (res.data.data.list.length < this.pagesize) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
                                    this.isLoadMore = true
                                    this.loadStatus = 'nomore'
                                } else {
                                    this.isLoadMore = false
                                }
                            } else {
                                this.isLoadMore = true
                                this.loadStatus = 'nomore'
                            }
                        } else { //接口请求失败的处理
                            uni.showToast({
                                title: res.data.msg,
                                icon: 'none'
                            })
                            this.isLoadMore = false
                            if (this.page > 1) {
                                this.page -= 1
                            }
                        }
                    },
                    fail: () => { //接口请求失败的处理
                        uni.showToast({
                            title: '服务器开小差了呢,请您稍后再试',
                            icon: 'none'
                        })
                        this.isLoadMore = false
                        if (this.page > 1) {
                            this.page -= 1
                        }
                    },
                });
            },
        },
    }
</script>

<style>
    .content {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    .logo {
        height: 200rpx;
        width: 200rpx;
        margin-top: 200rpx;
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 50rpx;
    }

    .text-area {
        display: flex;
        justify-content: center;
    }

    .title {
        font-size: 36rpx;
        color: #8f8f94;
    }
</style>

 

标签:uniapp,isLoadMore,res,上拉,data,page,加载
From: https://www.cnblogs.com/Insist-Y/p/17724470.html

相关文章

  • 请问为什么加载标签文字的时候,导致页面上出现卡顿?
    加载标签文字导致页面卡顿的问题可能与多种因素有关。这些因素可能包括页面结构、网络请求、浏览器性能、脚本执行等。以下是一些可能导致页面卡顿的原因以及解决方法:大量DOM元素:如果页面包含大量的DOM元素,加载和渲染这些元素可能导致页面卡顿。解决方法包括减少DOM元素数量,使用虚......
  • uniapp项目实践总结(二十)URLScheme 协议知识总结
    导语:在日常开发过程中,我们经常可以碰到很多的调起某个应用,打开唤醒某个APP,链式启动App等场景,背后就涉及到了URLScheme协议的相关知识,下面就简单介绍一下。目录简介常见URLScheme跳转方法实战演练案例展示简介URLScheme是一个可以让APP之间互相跳转的协议,每......
  • 2023-09-22 uniapp之canvas调用api【uni.canvasToTempFilePath】报错返回:canvasToTemp
    canvasToTempFilePath:失败-失败画布为空一般的解决方案就是查看uni.canvasToTempFilePath的传参是否正确,一个是canvasId必须正确,另一个就是第二个参数为this;但事情显示没那么简单,这二者我都有填写,却仍旧报这个错,我把canvasid换成别的,最后我想起了一件事情,就是canvas为空是因为......
  • webman:自动加载(v1.5.7)
    一,官方文档地址:https://www.workerman.net/doc/webman/others/autoload.html二,实际操作1,设置目录:在项目根目录下新建目录extend:修改composer.json增加以下代码:"psr-0":{    "":"extend/"}如图:执行dumpautoloadliuhongdi@lhdpc:/data/webman/image......
  • ZWCAD 自动加载net DLL程序,并加载菜单
    WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SOFTWARE\ZWSOFT\ZWCADM\2018\zh-CN\Applications\AutoCADADDIN]"DESCRIPTION"="""LOADCTRLS"=dword:0000000d"LOADER"="D:\\Users\\ZWCAD\\AutoCADADD......
  • uniapp 发布APP时怎么打dev和prod包?
    在UniApp中,您可以使用不同的配置文件来构建不同的开发(dev)和生产(prod)包。这些配置文件用于指定不同环境下的变量、插件、配置等信息。通常,UniApp使用process.env.NODE_ENV变量来确定当前环境是开发还是生产。以下是一般的步骤来创建和发布UniApp的开发和生产包:1.创建配置文件:首先,您......
  • BootstrapBlazor.Splitting 加载动画组件
    BootstrapBlazor.Splitting加载动画组件介绍本Blazor组件依赖于BootstrapBlazor组件库开发,底层由Splitting.js和gsap.js实现。使用该组件库之前需要先安装BootstrapBlazor.Splitting组件独立包。可以通过nuget命令行安装NuGet\Install-PackageBootstrapBlazor.Splitting-V......
  • Java中获取类加载路径和项目根路径
    publicclassTest{publicstaticvoidmain(String[]args){//LIVETEMPLATEpsvm+Tab键soutTesttest=newTest();try{test.showURL();}catch(Exceptione){e.printStackTrace();}......
  • 【HarmonyOS】一文教你如何通过内存图片方式使用image组件加载网络图片资源
    【关键字】内存图片方式、image组件、网络图片资源、api6、服务卡片1、写在前面之前写过一篇元服务卡片的开发指导,有需求的可以参考以下文章:【HarmonyOS】低代码开发之FA卡片开发流程在2.6初始化卡片部分,我们实现了加载网络资源的图片,但是直接使用image组件加载网络资源似乎在新版......
  • 【HarmonyOS】一文教你如何通过内存图片方式使用image组件加载网络图片资源
    ​【关键字】内存图片方式、image组件、网络图片资源、api6、服务卡片 1、写在前面之前写过一篇元服务卡片的开发指导,有需求的可以参考以下文章:【HarmonyOS】低代码开发之FA卡片开发流程在2.6初始化卡片部分,我们实现了加载网络资源的图片,但是直接使用image组件加载网络资......