前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >uni-app实现上拉加载功能

uni-app实现上拉加载功能

作者头像
切图仔
发布2022-09-08 16:03:40
3K0
发布2022-09-08 16:03:40
举报
文章被收录于专栏:生如夏花绚烂

1.首先将上拉加载封装成组件

代码语言:javascript
复制
<template>
    <view>
        <!-- 上拉加载 -->
        <view class="flex align-center justify-center py-3 font">
            <text class="font text-light-muted">
                {{loadmore}}
            </text>
        </view>
    </view>
</template>

<script>
    export default{
        props:{
            loadmore:String
        }
    }
</script>

<style>
</style>

我们配置props接受加载提升文字

在index.vue导入上拉加载组件

代码语言:javascript
复制
//结构
  <!-- 滑块视图 -->
     <swiper :style="'height:'+scrollH+'px;'" :duration="500" :current="tabIndex" @change="onChangeTab">
          <swiper-item v-for="items,indexs in newslist" :key="indexs">
              <scroll-view @scrolltolower="loadmore(indexs)" scroll-y="true" :style="'height:'+scrollH+'px;'">
                  <!-- 判断数据长度 -->
                <template v-if="items.list.length>0">
                    <block v-for="(item,index) in items.list" :key="index">
                        <!-- 图文列表 -->
                        <commonList :item="item" :index="index" @follow="follow" @doSupport="doSupport">
                            
                        </commonList>
                        <!-- 全局分割线 -->
                        <divider></divider>
                        
                    </block>
                    <!-- 上拉加载 -->
                    <load-more :loadmore="items.loadmore"></load-more>
                </template>
                <!-- 没有数据显示 -->
                <template v-else>
                    <nothing-data></nothing-data>
                </template>
                
              </scroll-view>
          </swiper-item>
      </swiper>
        
<script>
    import demo from '@/newsdata.js'//导入新闻数据
    import commonList from '@/components/common/common-list.vue'
    import loadMore from '@/components/common/load-more.vue'//上拉加载组件
    export default {
        components:{
            commonList,loadMore
        },
        ....
    </script>

我们在scroll-view添加了scrolltolower事件,当滚动到页面底部时触发loadmore函数,并传入当前数据索引,这个索引用于加载当前栏目的内容

官方文档:组件->视图容器->scroll-view

代码语言:javascript
复制
loadmore(indexs){
    //模拟数据请求
    let item = this.newslist[indexs]
    //修改当前列表状态
    //验证是否处于可加载状态(2s之后才进行加载)
    if(item.loadmore!=='上拉加载更多'){
        return;
    }
    this.newslist[indexs].loadmore='加载中...'
    setTimeout(()=>{
        //加载数据
        item.list = [...item.list,...item .list]
        //恢复数据加载状态
        this.newslist[indexs].loadmore='上拉加载更多'
    },2000)
}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档