首页 > 其他分享 >uniapp 封装请求方法

uniapp 封装请求方法

时间:2024-09-19 23:49:33浏览次数:3  
标签:uniapp loading 封装 请求 url res request uni data

目录

uni.request() 封装

uni.showLoading() 封装

使用 request() 方法


uni.request() 封装
// request.js

const BASE_URL = 'https://tea.qingnian8.com/api';

// 请求函数
export const request = (option = {}) => {
	// 解构并赋初始值
	let {
		url,
		data = {},
		method = "GET",
		header = {},
		loading = false
	} = option

	// 禁止 url 为空
	if (!url) return false

    // 拼接额外数据
	url = BASE_URL + url
	header['token'] = "xxx"

	// 加载中 动画	默认关闭
	if (loading) showLoading()

	// 返回数据
	return new Promise((resolve, reject) => {
		// 发送请求
		uni.request({
			url,
			data,
			header,
			method,
			success: (res) => {
				// 后端返回的数据异常
				if (res.data.errCode !== 0) {
					uni.showToast({
						title: res.data.errMsg,
						icon: "none"
					})
					reject(res.data) // 将失败的结果返回出去
				} else if (res.data.errCode === 400) {
					uni.showModal({
						title: "错误提示",
						content: res.data.errMsg,
						showCancel: false
					})
					reject(res.data) // 将失败的结果返回出去
				} else {
					resolve(res.data) // 将成功的结果返回出去
				}
			},
			// 请求失败
			fail: (err) => {
                uni.showToast({
					title: '服务响应失败',
					icon: "none",
				});
				reject(err)
			},
			complete: () => {
				uni.hideLoading()
			}
		});
	})
}
uni.showLoading() 封装

        防止在页面中连续或同时发送请求时调用多次 uni.showLoading() 方法。

// request.js

// 加载loading 封装
const showLoading=()=> {
	// 判断是否已经开启,true 则先关闭再重新开启
	const flag = uni.getStorageSync('loading')
	if (flag) {
		uni.setStorageSync('loading', false)
		uni.hideLoading()
	}

	// 开启 loading
	uni.showLoading({
		title: '加载中',
		success: () => {
			uni.setStorageSync('loading', true)
		},
		fail: () => {
			uni.setStorageSync('loading', false)
		}
	})
}
使用 request() 方法
// api.js

// 引入 request 方法
import { request } from '../utils/request.js'

// 用户个人信息
export const getUserInfo = (data) => {
	return request({
		url: '/bizhi/userInfo',
        data,
        loading:true
	})
}

标签:uniapp,loading,封装,请求,url,res,request,uni,data
From: https://blog.csdn.net/qewra/article/details/142268731

相关文章

  • asp sql封装成函数
    <%'定义数据库连接字符串DimconnectionStringconnectionString="Provider=sqloledb;DataSource=你的数据库服务器;InitialCatalog=你的数据库名;UserId=你的用户名;Password=你的密码;"'定义数据库连接和命令对象Dimconn,cmd,rs'定义函数来执行SQL查询并返回记录集F......
  • vue中axios请求数据
    首先引入包:yarnaddaxios再导入importaxiosfrom'axios'<template><div><h1>登录页面</h1><form><labelfor="username">用户名:</label><inputtype="text"id="userna......
  • java识别是不是ajax请求
    在JavaWeb应用中,识别是否是一个AJAX请求通常可以通过检查HTTP请求头中的X-Requested-With头字段来实现。如果该字段的值为XMLHttpRequest,则可以认为这是一个AJAX请求。示例代码以下是一个示例,展示了如何在SpringMVC控制器中识别AJAX请求:1.SpringMVC控制器importorg.spring......
  • Go语言grequests库并发请求的实战案例
    在当今快速发展的互联网时代,数据的获取和处理速度成为了衡量一个系统性能的重要标准。Go语言以其并发处理能力而闻名,而grequests库则为Go语言的HTTP请求提供了简洁易用的API。本文将通过一个实战案例,介绍如何使用Go语言的grequests库来实现高效的并发HTTP请求。1.引言在......
  • Uniapp生命周期
    UniApp框架中的生命周期函数主要分为两大类:页面生命周期和组件生命周期。页面生命周期:onLoad:页面加载时触发。onShow:页面显示时触发。onReady:页面初次渲染完成时触发。onHide:页面隐藏时触发。onUnload:页面卸载时触发。onPullDownRefresh:用户......
  • 如何用Python将HTTP接口封装成可视化页面。
        在软件行业中,经常会遇到有一些功能只能通过接口触发,没有页面。这样很不方便,。我们这里,就是通过PyQt5实现,将接口的入参,封装成一个可视化的表单。将用户在表单中填写的数据,传给接口,接口再带参请求业务 1.先看最终的效果,用户打开桌面应用后,只会出现下面的弹窗, 接口......
  • Jmeter的简单使用一:http请求
    1、创建线程组setUp和tearDown线程组类似测试用例的测试开始之前执行某些初始化操作,如环境准备、数据库连接和释放数据库连接2、设置线程组Ramp-Up时间(以秒为单位)是指从开始到所有线程都达到活动状态的时间。例如,如果你设置了10个线程,并且Ramp-Up时间为20秒,那么JMeter会在20秒......
  • SpringBoot拦截器中读取POST请求体参数
    CustomHttpServletRequestWrapper.java:包装请求,缓存请求体数据,重写读取数据方法importjavax.servlet.ReadListener;importjavax.servlet.ServletInputStream;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletRequestWrapper;importj......
  • uniapp 打包32位
    uniapp打包32位在uniapp中,如果你想要打包成32位的应用,你需要确保你的开发环境支持32位构建,并且你的电脑操作系统也支持32位应用。以下是打包32位应用的步骤:确保你的开发环境支持32位构建,比如HBuilderX。在HBuilderX中,打开你的uniapp项目。在项目视图中,找......
  • 基于SpringBoot + Uniapp的公开课管理小程序(角色:学生、教师、管理员)
    文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例八、一站式毕设支持服务结语......