UniApp Vue 3 中的网络请求封装及用法

UniApp中,结合Vue 3的强大特性,进行网络请求的封装是项目中常见的需求。这样的封装不仅提高了代码的可维护性,还使得在组件中使用网络请求更加简洁。本文将详细介绍UniApp Vue 3中的网络请求封装,并提供一个简单的用法示例。

创建文件

在项目根目录下新建api文件夹下新建http.js和api.js

请求方法封装
http.js文件代码
javascript 复制代码
//http.js

let baseUrl = 'http://120.48.109.174:8081';

export const http = function(url, method = 'get', data = {}) {
	return new Promise((resolve, reject) => {
		uni.request({
			url: baseUrl + url,
			data,
			method,
			header: {
				'token': uni.getStorageSync('token') || ''
			}, // 自定义请求头
			success: res => { // 成功的回调
				if (res.data.code == 401) {
					uni.reLaunch({
						url: "/pages/login/login"
					});
				}
				resolve(res.data);
			},
			fail: (err) => { // 失败的回调
				reject(err);
			},
			complete: () => { // 不论成功失败的回调
				// 可以在这里写一些通用的逻辑,比如隐藏加载动画
			}
		});
	});
};
api.js文件代码
javascript 复制代码
//api.js

import { http } from '@/utils/http.js';

// 示例:获取首页数据
export const getHome = ()=>{
	return http('/api/user/info', 'get')
}
页面使用
javascript 复制代码
	import { onLoad } from '@dcloudio/uni-app'
	import { getHome } from '../../api/api'

		
    //页面加载调用
	onLoad(()=>{
		getHome().then((res)=>{
			console.log(res);
		})
	})
相关推荐
咩咩啃树皮7 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
阳光是sunny7 小时前
LangGraph中的Reducer是什么
前端·人工智能·后端
触底反弹7 小时前
一文搞懂 Tailwind CSS 弹性布局:从原理到实战
前端·css·html
阳光是sunny7 小时前
从链到图:LangGraph 入门基础全解析
前端·人工智能·后端
小林ixn8 小时前
从 ??= 到 onKeyDown:一个 React 组件的“自我修养”
前端·javascript·react.js
REDcker8 小时前
显示分辨率标准对照详解
前端·网络·分辨率·显示·屏幕
এ慕ོ冬℘゜9 小时前
前端实战:jQuery 多条件联合搜索(标题模糊查询 + 日历时间段筛选)
前端·javascript·jquery
武子康9 小时前
Search Console Platform Properties 扩大 SEO 资产边界:从 Page Ranking 到 Topic Coverage(5 类误读边界 + 3 表数据层设计)
前端·人工智能·后端
一点一木10 小时前
从60首歌到1个网站:输入你的故事,还你一首歌
前端·github
IT_陈寒11 小时前
Vue这个特性差点让我加班到凌晨,谁懂啊
前端·人工智能·后端