uni-app API封装集中管理

长话不多说,上代码
根目录下新建api目录 (cli创建项目的是src目录下),内部新建request.js文件 和index.js文件
request.js做为请求接口文件

	// 区分开发环境和生产环境
var baseUrl;
	if (process.env.NODE_ENV === 'development') {
	baseUrl = 'https://www.test.com'
	} else {
		baseUrl = 'https://www.baidu.com'
	}

export function request(config) {
	// 请求时间	 超出时间抛出错误
	config.timeout = 20000;
	//  
	config.header = {
		'content-type': 'application/json',
		// 'token': 'hello' //token
	};

	config.url = baseUrl + config.url;
	let promise = new Promise(function(resolve, reject) {
		uni.request(config).then(res => {
			if (res[0]) {
				uni.showToast({
					title: "数据获取失败",
					icon: "none",
					duration: 1500
				})
				resolve(false);
				// reject({
				// 	message: res[0],
				// 	config: config
				// });
			} else {


				let data = res[1].data; // 如果返回的结果是data.data的,嫌麻烦可以用这个,return res,这样只返回一个data
				if (data.code == 1) {
					resolve(data);
				} else {
					resolve(data);
					// 	return  uni.showToast({
					// 	title:data.msg,
					// 	icon:"none",
					// 	duration: 500
					// })

				}
				uni.hideLoading();

			}

		}).catch(error => {
			uni.hideLoading();
			reject(error);


		})
	})

	return promise
}

index.js做为indexApi模块的接口集合


import {request}  from '@/api/request.js'; // 引入封装好的request
	
class indexApi{
	// 获取首页top nav
	async columnIndex(data) {
		const res = await request({
			method: "get", // 请求方式
			url: '/api/column/index', // 请求url
			data: data,// 参数
		})
	
		return res
	}

	
	//  获取推荐
	async recommendIndex(data){
		
		const res = await request({
			method: "POST", // 请求方式
			url: '/api/recommend/index', // 请求url
			data: data // 参数
		})
		
		return res
	}
	
	
}

export default new indexApi()

页面上可以这样使用

import indexApi from '@/api/index.js';

onload(){
	this.getDataA()
	this.getDataB()
},
methods:{

	// 同步方法 使用async  await 语法糖
	async getDataA(){
	
	// post 参数
	var parameter = {	
				city_name: '深圳',
				tag: "推荐",
								
				}
					
	let  res = await indexApi.recommendIndex(parameter)
	console.log(res)
	},


	//异步方法
	getDataB(){
	// 没有参数为空即可			
	indexApi.columnIndex().then((res)=>{
	console.log(res)
	})
	
	},
}


  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Uni-app 是一个跨平台的开发框架,可以用于同时开发多个平台的应用程序。在 Uni-app 中进行网络请求时,可以使用封装的方式来简化请求过程,提高代码的复用性和可维护性。 以下是一个简单的示例,展示了如何封装一个网络请求方法: ```javascript // api.js // 导入uni-app的网络请求方法 import { request } from 'uni-app'; // 封装网络请求方法 export function get(url, data) { return request({ url: url, method: 'GET', data: data }); } export function post(url, data) { return request({ url: url, method: 'POST', data: data }); } ``` 在上述示例中,我们将 uni-app 提供的 `request` 方法进行了封装,创建了 `get` 和 `post` 方法,分别用于发起 GET 和 POST 请求。这样做的好处是可以统一处理请求的配置,例如设置请求头、处理响应等。 使用封装的网络请求方法时,只需在需要发送请求的地方引入 `api.js` 文件,并调用相应的方法即可: ```javascript // 使用网络请求方法 import { get, post } from './api.js'; // 发起 GET 请求 get('/api/data', { id: 1 }) .then(response => { console.log(response.data); }) .catch(error => { console.error(error); }); // 发起 POST 请求 post('/api/login', { username: 'admin', password: '123456' }) .then(response => { console.log(response.data); }) .catch(error => { console.error(error); }); ``` 通过封装网络请求方法,我们可以更方便地调用和管理网络请求,提高开发效率。当需要修改请求配置时,只需要在封装的方法中进行修改,而不需要在每个请求的地方都修改一遍。同时,封装后的代码也更易读、易维护。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值