uniapp中uni-load-more的使用方式

 更新时间:2024年05月24日 09:01:03   作者:第7个前端  
这篇文章主要介绍了uniapp中uni-load-more的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

uniapp中uni-load-more使用

1 引入uniloadmore

import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
components: {uniLoadMore},

2 data中写的内容

reload: false,
status: 'more',
contentText: {
        contentdown: '上拉加载更多~',
        contentrefresh: '加载中',
        contentnomore: '我是有底线的~'
},

3 template里面写的内容

<uni-load-more :status="status" :icon-size="14" :content-text="contentText" v-if="dataList.length > 0" />

4 请求接口成功之后,判断加载状态,处理数据

success: (result) => {
        this.totalCount = result.data.total
        if (result.data.total > 0) {
                const dataMap = result.data.list
                this.dataList = this.reload ? dataMap : this.dataList.concat(dataMap);
                this.reload = false;
        } else {
                this.dataList = [];
        }
        if (this.totalCount == this.dataList.length) {
                this.reload = false;
                this.status = 'noMore'
        }
}

5 监控加载状态

onReachBottom() {
        if (this.totalCount > this.dataList.length) {
                this.status = 'loading';
                setTimeout(() => {
                        this.pageNum++
                        this.getMonthTask();//执行的方法
                }, 1000)//这里我是延迟一秒在加载方法有个loading效果,如果接口请求慢的话可以去掉
        } else { //停止加载
                this.status = 'noMore'
        }
},

uniapp - load-more触底加载,下拉刷新

底部加载load-more(uni-ui组件)

三个状态:more、loading、nomore

  • 触底事件:onReachBottom
  • 下拉刷新:onPullDownRefresh,停止下拉刷新uni.stopPullDownRefresh()
<template>
  <view>
    <!-- 底部加载,三个状态:more、loading、nomore -->
    <uni-load-more :status="status"></uni-load-more>
  </view>
</template>
 
<script>
export default {
  data() {
    return {
      data: null,
      status: 'more', //触底加载状态
      page: 1, //记录当前页码
    };
  },
  //触底事件,请求数据、合并
  onReachBottom() {
    console.log('到底了到底了...');
    this.status = 'loading';
    this.getData(this.page + 1);
    this.page += 1;
  },
  //下拉刷新,请求第一页
  onPullDownRefresh() {
    this.getData();
  },
  mounted() {
    this.getData();
  },
  methods: {
    getData(page = 1) {
      uni.request({
        url: 'https://xxxx.....',
        method: 'GET',
        data: { page: page },
        success: res => {
          console.log(res);
          //如果页数>1,需要拼接返回的数据
          if (page > 1) {
            res.data.result = [...this.data.result, ...res.data.result];
          }
          this.data = res.data;
          uni.stopPullDownRefresh(); //拿到数据后,停止下拉刷新
        },
        fail: () => {},
        complete: () => {}
      });
    },
  },
};
</script>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解vue2.0+vue-video-player实现hls播放全过程

    详解vue2.0+vue-video-player实现hls播放全过程

    这篇文章主要介绍了详解vue2.0+vue-video-player实现hls播放全过程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • vue跳转方式的常见方式以及区别分析

    vue跳转方式的常见方式以及区别分析

    在Vue.js中页面跳转是前端开发中常见的需求,Vue提供了多种页面跳转方式,这篇文章主要给大家介绍了关于vue跳转方式的常见方式以及区别分析的相关资料,需要的朋友可以参考下
    2024-02-02
  • Vue 使用v-model实现控制子组件显隐效果

    Vue 使用v-model实现控制子组件显隐效果

    v-model 可以实现双向绑定的效果,允许父组件控制子组件的显示/隐藏,同时允许子组件自己控制自身的显示/隐藏,本文给大介绍Vue 使用v-model实现控制子组件显隐,感兴趣的朋友一起看看吧
    2023-11-11
  • vue项目本地开发使用Nginx配置代理后端接口问题

    vue项目本地开发使用Nginx配置代理后端接口问题

    这篇文章主要介绍了vue项目本地开发使用Nginx配置代理后端接口问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • vue+Element-ui实现登录注册表单

    vue+Element-ui实现登录注册表单

    这篇文章主要为大家详细介绍了vue+Element-ui实现登录注册表单,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • 在Vue3中进行单元测试和集成测试的操作方法

    在Vue3中进行单元测试和集成测试的操作方法

    随着越来越多的企业和开发者选择使用 Vue.js 构建他们的前端应用程序,确保代码质量和可靠性变得尤为重要,在本博客中,我们将深入探讨如何在 Vue 3 中进行单元测试和集成测试,并提供示例代码来帮助您上手,需要的朋友可以参考下
    2025-01-01
  • vue-cli3项目生产和测试环境分包后文件名和数量不一致解决

    vue-cli3项目生产和测试环境分包后文件名和数量不一致解决

    这篇文章主要为大家介绍了vue-cli3项目生产和测试环境分包后文件名和数量不一致解决方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • vue中使用require动态获取图片地址方式

    vue中使用require动态获取图片地址方式

    这篇文章主要介绍了vue中使用require动态获取图片地址方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • vue中对象数组去重的实现

    vue中对象数组去重的实现

    这篇文章主要介绍了vue中对象数组去重的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • vue-loader和webpack项目配置及npm错误问题的解决

    vue-loader和webpack项目配置及npm错误问题的解决

    这篇文章主要介绍了vue-loader和webpack项目配置及npm错误问题的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07

最新评论