今天用uniapp寫抖音小程序的時(shí)候,發(fā)現(xiàn)抖音小程序不支持axios(也許是我不會(huì)玩哈),那使用uniapp提供的請(qǐng)求方式總是可以的,畢竟uniapp對(duì)于小程序的友好度那是真沒的說呀。那每個(gè)請(qǐng)求都寫一套請(qǐng)求代碼也太麻煩了,封裝一個(gè)服務(wù)吧。直接上代碼,我們把下面這個(gè)文件叫做http.js吧,里面的注釋也很明白,伸手就能ctrl c v:
const BASE_URL = 'https://用你自己的url替換'; // 設(shè)置基本請(qǐng)求 URL
const requestInterceptor = (config) => {
// 添加請(qǐng)求攔截邏輯
// 在這里可以對(duì)請(qǐng)求進(jìn)行處理,例如添加請(qǐng)求頭、簽名等
config.header = {
...config.header
};
return config;
};
const responseInterceptor = (response) => {
// 添加響應(yīng)攔截邏輯
// 在這里可以對(duì)響應(yīng)進(jìn)行處理,例如處理錯(cuò)誤碼、數(shù)據(jù)解析等
if (response.statusCode === 200) {
return response.data;
} else {
throw new Error('Request failed with status code ' + response.statusCode);
}
};
const request = (config) => {
const requestConfig = {
...config,
header: requestInterceptor(config).header,
url: BASE_URL + config.url,
};
return new Promise((resolve, reject) => {
uni.request({
...requestConfig,
success: (res) => {
try {
const responseData = responseInterceptor(res);
resolve(responseData);
} catch (error) {
reject(error);
}
},
fail: (err) => {
reject(err);
},
});
});
};
export const get = (url, params = {}) => {
const config = {
url,
method: 'GET',
data: params,
};
return request(config);
};
export const post = (url, data = {}) => {
const config = {
url,
method: 'POST',
data,
};
return request(config);
};
cv以后就能直接用:
import { get, post } from '@/http.js';
// 發(fā)送 GET 請(qǐng)求
get('/users', { id: 1 })
.then((response) => {
// 處理成功的響應(yīng)
})
.catch((error) => {
// 處理請(qǐng)求錯(cuò)誤
});
// 發(fā)送 POST 請(qǐng)求
post('/users', { name: 'John', age: 25 })
.then((response) => {
// 處理成功的響應(yīng)
})
.catch((error) => {
// 處理請(qǐng)求錯(cuò)誤
});
當(dāng)然如果用vue的話,你可以將get和post這兩個(gè)方法在main.js掛載到Vue實(shí)例原型上以供全局使用,就不用到處import了。
抖音小程序文檔中的tt對(duì)象都可以用uni對(duì)象來替換,用tt對(duì)象調(diào)用的方法都可以用uni調(diào)用
題外話:小程序開發(fā)的資料比較少,多說一句小程序的內(nèi)容,抖音小程序其實(shí)和微信小程序差不多,微信小程序畢竟是各大小程序的鼻祖,大同小異,所以也是推薦大家直接用uniapp開發(fā),雖然uniapp性能上不如原生安卓ios或者flutter應(yīng)用,但是論跨平臺(tái)和開發(fā)效率,還是支持vue的uniapp要強(qiáng)很多,開發(fā)一套代碼可以同時(shí)打包各個(gè)小程序、安卓、h5、ios(需要使用mac os打包)等,在這個(gè)方面,他的效率很高的,至于有人罵uniapp全是惡心人的廣告啥的,我覺得這很正常,至少從一個(gè)方面也是反應(yīng)了開發(fā)者也是生活不易,已然開源,也還得靠廣告費(fèi)掙點(diǎn)錢,這個(gè)是完全可以理解甚至是可以支持一把的,很多市場(chǎng)插件也都是看一個(gè)廣告就能免費(fèi)用了,挺好的,好的產(chǎn)品愿意支持。文章來源:http://www.zghlxwxcb.cn/news/detail-726732.html
如果小程序的需求比較多,我后面會(huì)出一些uni小程序的入門教程。文章來源地址http://www.zghlxwxcb.cn/news/detail-726732.html
到了這里,關(guān)于uniapp封裝一個(gè)網(wǎng)絡(luò)請(qǐng)求的服務(wù),包括攔截器,請(qǐng)求頭等,適用于抖音小程序,各種小程序。的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!