uniapp实现分页功能

本文介绍了如何在uni-app中实现分页功能,通过使用uni-load-more组件,展示了分页加载的效果,并提供了相关组件的路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

uniapp实现分页功能

效果图

在这里插入图片描述

 <!-- 列表数据 -->
    <view class="homecenter">
      <template v-if="progitlist && progitlist.length > 0">
        <scroll-view scroll-y="true" class="scroll-Y" @scrolltolower="toLowerLoad">
          <view class="conlists" v-for="(item, index) in progitlist" :key="index">
            <view class="content" style="width: 340rpx">{
   {
    item.payTime }}</view>
            <view class="content">{
   {
    item.classificationName || '-' }}</view>
            <view class="content">{
   {
    item.money }}</view>
          </view>
          //这是组件 内容在下边放着
          <uni-load-more :status="status"></uni-load-more>
        </scroll-view>
      </template>
      <view class="noResult" v-else>
        <image class="noImg" src="/static/imgs/noResult2.png">
        <template>
            <view class="line1">暂无内容</view>
         </template>
      </view>
    </view>

  data(){
   
    return{
   
       page: 1,
       row: 10,
       total: 0, 
       classificationId:'',
       progitlist: [],
       status: 'empty', // more-加载前;loading-加载中;noMore-没有更多了;empty-空数据
   }
 },
  onLoad(option) {
   
    this.getlist(1);
  },
 methods:{
   
  async getlist(page) {
   
  
      let data = {
   
      
        page: page,
        
        row: 10,
        
        classificationId: this.classificationId,
        
      };
      
      this.status = 'loading';
      
      let res = await appService.AgencyRevenue(data);
      
      if (res.code == 200) {
   
       
        this.page = page
        
        this.total = res.data.data.myFinanceIPage.total * 1//因为我这返回的total是字符串1所以最后乘以1
        
        
        if(page == 1){
   
        
          this.progitlist = res.data.data.myFinanceIPage.records;
          
        }else{
   
        
          this.progitlist = this.progitlist.concat(res.data.data.myFinanceIPage.records)
Uniapp实现下拉分页加载数据,可以通过以下步骤: 1. 首先,在页面中引入下拉刷新组件和分页加载组件。 ```html <template> <view> <list :finished="finished" @load="loadData" > <refresh refresher-triggered="onRefresh"> <!-- 下拉刷新的内容 --> </refresh> <cell v-for="(item, index) in dataList" :key="index"> <!-- 显示数据项的内容 --> </cell> <loading v-if="loading"></loading> </list> </view> </template> ``` 2. 在页面的 `data` 中定义数据相关的变量,如 `dataList` 用于存储加载的数据,`loading` 用于标识数据加载中,`finished` 用于标识是否已加载完所有数据。 ```javascript export default { data() { return { dataList: [], loading: false, finished: false, }; }, // ... }; ``` 3. 实现下拉刷新和分页加载的方法。 ```javascript export default { // ... methods: { // 下拉刷新 onRefresh() { // 清空数据列表 this.dataList = []; // 重置加载状态 this.finished = false; // 加载数据 this.loadData(); }, // 分页加载 loadData() { if (this.loading || this.finished) return; this.loading = true; // 发起网络请求获取数据 // 假设每页加载 10 条数据 // 模拟异步请求延迟 setTimeout(() => { // 模拟请求成功 const newData = [...]; // 新加载的数据 if (newData.length > 0) { this.dataList = this.dataList.concat(newData); } else { this.finished = true; // 数据已加载完 } this.loading = false; }, 1000); }, }, }; ``` 以上是一个简单的示例,实现了下拉刷新和分页加载数据的功能。当用户下拉刷新页面时,会触发 `onRefresh` 方法,清空数据并重新加载;当用户滚动到列表底部时,会触发 `loadData` 方法,加载更多数据并追加到列表中。你可以根据你的实际需求进行修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值