uniapp分页第二次请求用法介绍

本文将从多个方面对uniapp分页第二次请求进行详细阐述,并给出对应的代码示例。

一、请求参数的构造

在进行分页请求时,需要传递的参数体包含当前页码以及每页显示的数据量。对于第二次请求,还需要包含第一次请求返回的最后一条记录的id,以及上一页最后一条记录的id。这些参数的构造需要注意以下几点:

1、当前页码


let currentPage = 2; //当前页码
let pageSize = 20; //每页显示的数据量

2、每页显示的数据量


let currentPage = 2; //当前页码
let pageSize = 20; //每页显示的数据量

3、第一次请求返回的最后一条记录的id


let lastRecordId = '1234567'; //第一次请求返回的最后一条记录的id

4、上一页最后一条记录的id


let lastPageLastRecordId = '2345678'; //上一页最后一条记录的id

二、请求数据的处理

对获取到的数据进行处理,需要注意以下几点:

1、数据的保存

第二次请求获取到的数据需要与第一次请求返回的数据进行合并,可以利用数组的concat()方法对两个数组进行合并。


let data = []; //用于保存请求到的数据
let newData = [{...},{...},{...}]; //新获取到的数据
data = data.concat(newData); //将新获取到的数据与之前返回的数据合并

2、是否还有下一页

可以通过判断获取到的数量是否达到每页显示的数量,来确定是否还有下一页数据。


let hasMoreData = false; //是否还有下一页数据
if(newData.length === pageSize) {
    hasMoreData = true;
}

三、请求数据的展示

在对请求到的数据进行展示时,需要注意以下几点:

1、循环展示数据

可以利用v-for指令对数据进行循环展示。


<ul>
    <li v-for="item in data" :key="item.id">
        <span>{{ item.title }}</span>
        <span>{{ item.time }}</span>
    </li>
</ul>

2、展示加载更多按钮

当还有下一页数据时,可以展示“加载更多”按钮,点击按钮即可进行下一次请求。


<template>
    <div>
        <ul>
            <li v-for="item in data" :key="item.id">
                <span>{{ item.title }}</span>
                <span>{{ item.time }}</span>
            </li>
        </ul>
        <button v-if="hasMoreData" @click="loadMore">加载更多</button>
    </div>
</template>

//点击“加载更多”按钮后触发的方法
methods: {
    loadMore() {
        //构造请求参数
        let params = {
            currentPage: this.currentPage + 1,
            pageSize: this.pageSize,
            lastRecordId: this.data[this.data.length-1].id,
            lastPageLastRecordId: this.lastPageLastRecordId
        };
        //发起请求
        this.requestData(params);
    }
}

四、请求出错处理

在请求数据时,可能会出现一些错误,需要对这些错误进行处理。

1、网络错误

如果请求时出现网络错误,可以对错误进行处理,并提示用户重新请求。


//发起请求,处理错误
async requestData(params) {
    try {
        let res = await this.$http.post(url, params);
        //处理请求数据
    } catch (err) {
        //处理错误
        this.$toast('网络错误,请重试!');
    }
}

2、业务错误

如果请求到的数据中包含业务错误,例如没有更多数据了,可以在展示数据时进行处理,并提示用户。


//处理是否还有下一页数据
async handleData(res) {
    let newData = res.data;
    this.hasMoreData = newData.length === this.pageSize;
    if(!this.hasMoreData) {
        this.$toast('没有更多数据了!');
    }
    //将新获取到的数据与之前返回的数据合并
    this.data = this.data.concat(newData);
}

五、总结

本文从请求参数的构造、请求数据的处理、请求数据的展示、请求出错处理等多个方面对uniapp分页第二次请求进行了详细阐述,并给出了对应的代码示例,希望能对大家有所帮助。

原创文章,作者:ZRYYQ,如若转载,请注明出处:https://www.506064.com/n/373445.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
ZRYYQZRYYQ
上一篇 2025-04-27 15:26
下一篇 2025-04-27 15:26

相关推荐

  • jQuery Datatable分页中文

    jQuery Datatable是一个非常流行的数据表插件,它可以帮助您快速地在页面上创建搜索、过滤、排序和分页的数据表格。不过,它的默认设置是英文的,今天我们就来探讨如何将jQu…

    编程 2025-04-29
  • uniapp ios打包详解

    一、环境搭建 首先需要安装Xcode,并在Xcode中登录自己的Apple ID,开启自己的开发者账户。 接着,需要在uniapp项目中配置签名证书和描述文件。步骤如下: 在Xco…

    编程 2025-04-25
  • uniapp导航栏字体大小探究

    随着移动端应用的发展,导航栏越来越成为移动应用中一个重要的组成部分。在如此众多的移动端开发框架中,uniapp已经成为了很多开发者的首选。在uniapp中,导航栏也是一个非常重要的…

    编程 2025-04-25
  • 全面解析uniapp如何获取当前位置

    一、uniapp使用定位API实现实时定位 1、uniapp提供的定位API可以获取当前设备位置,使用方法如下: // 开启实时定位 uni.startLocationUpdate…

    编程 2025-04-25
  • uniapp面试题解析

    一、uniapp简介 uniapp是一种基于vue.js框架的开源跨平台开发框架,可以让开发者使用vue的语法在多个平台上进行一次编译即可生成iOS、Android、Web和小程序…

    编程 2025-04-25
  • uniapp跳转到外部链接详解

    一、常规跳转方式 1、使用a标签进行跳转: <a href=”https://www.baidu.com”>跳转到百度</a> 2、使用window.loc…

    编程 2025-04-24
  • uniapp打包app指南

    一、准备工作 在开始打包app之前,我们需要预先准备好一些工作。首先,确保你已经安装了相关的软件:HBuilderX、Android SDK、Xcode(如果你需要在iOS上打包)…

    编程 2025-04-24
  • Mybatis Plus分页失效问题及解决方案

    一、分页失效的原因 Mybatis Plus是一款优秀的ORM框架,使用简单方便。但是,在使用它进行分页时,有时会出现分页失效的问题,原因可能有以下几个方面: 1、Mybatis …

    编程 2025-04-24
  • Uniapp小程序分包详解

    一、分包原理 小程序分包是根据小程序自身限制,将小程序内部的代码及资源分别打包成多个包,最终上传到微信服务器。具体原理如下: 1、小程序总体积不能超过 8M,同时需要包括框架、业务…

    编程 2025-04-23
  • 深入探讨uniapp内嵌HTML页面

    一、HTML页面的嵌入方式 1、使用`uni-web-view`原生组件嵌入HTML页面在uni-app中,可以使用`uni-web-view`组件来嵌入HTML页面。其中,`un…

    编程 2025-04-23

发表回复

登录后才能评论