对于这个话题我可以提供以下完整攻略:
uni-app调取接口的3种方式以及封装uni.request()详解
在uni-app中,我们一般采用uni.request()方法来调用后端接口。下面我们将介绍三种调用方式以及如何封装uni.request()方法。
1. 直接调用
直接调用指的是将请求地址、请求类型、请求参数等信息直接写在uni.request()方法中,后端返回的数据会在success回调函数中返回,如下
uni.request({
url: 'http://xxx.xxx.xxx/rest/api/login',
method: 'POST',
data: {
username: 'admin',
password: '123456'
},
success: function(res) {
console.log(res.data);//后端返回的数据
},
fail: function(res) {
console.log('请求失败');
}
})
其中需要注意的是,调用后端接口时需要加上协议头,如上例中的http://
。
2. 配置文件调用
为了方便维护,我们可以将后端接口的地址和请求类型等信息统一放在配置文件中,然后在uni.request()方法中引用配置文件中的配置信息来调用后端接口。具体做法如下:
- 在uni-app项目目录下,创建一个config目录;
- 在config目录下创建一个config.js文件,用来存储后端接口的相关配置信息;
- 在config.js文件中添加以下代码:
const baseUrl = 'http://xxx.xxx.xxx/rest/api/';//后端接口地址
export default {
baseUrl
}
需要注意的是,baseUrl的值需要加上协议头。
- 在需要调用后端接口的页面中引入config文件;
import config from '@/config/config.js'
- 在调用后端接口的时候,可以引用config文件中的baseUrl来请求后端接口,如下:
uni.request({
url: config.baseUrl + 'login',
method: 'POST',
data: {
username: 'admin',
password: '123456'
},
success: function(res) {
console.log(res.data);//后端返回的数据
},
fail: function(res) {
console.log('请求失败');
}
})
3. 封装uni.request()
为了方便多次调用后端接口,我们可以将uni.request()方法进行封装。封装后的代码如下:
const request = ({
url,
method = 'GET',
data = {},
header = {},
showLoading = true
}) => {
return new Promise((resolve, reject) => {
//显示loading
if (showLoading) {
uni.showLoading({
title: '正在加载,请稍后...'
});
}
uni.request({
url: config.baseUrl + url,
method: method,
data: data,
header: header,
success: function(res) {
//隐藏loading
if (showLoading) {
uni.hideLoading();
}
resolve(res.data);//返回后端数据
},
fail: function(res) {
//隐藏loading
if (showLoading) {
uni.hideLoading();
}
reject(res);
}
})
})
}
export default request
这里我们定义了一个request()方法,用来封装uni.request()方法。其中,request()方法接收一个对象作为参数,对象中包含了请求地址、请求类型、请求参数等相关信息。这里我们还增加了一个showLoading参数,在调用请求时可设置是否显示加载中的提示。在方法中使用了Promise来对结果进行返回,便于后续进行调用。
使用封装后的request()方法,如下:
import request from '@/common/js/request.js'
request({
url: 'login',
method: 'POST',
data: {
username: 'admin',
password: '123456'
},
showLoading: true
}).then(res => {
console.log(res);
}).catch(error => {
console.log(error);
})
以上就是uni-app调取接口的三种方式以及封装uni.request()方法的详细攻略,希望对你有帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:uni-app调取接口的3种方式以及封装uni.request()详解 - Python技术站