關(guān)于React Native使用axios進行網(wǎng)絡(luò)請求的方法
在前端開發(fā)中,能夠完成數(shù)據(jù)請求的方式有很多,如Ajax、jQuery ajax、axios和fetch等。不過,隨著技術(shù)的發(fā)展,現(xiàn)在能夠看到的基本上也就axios和fetch兩種。
axios是一個基于Promise的Http網(wǎng)絡(luò)庫,可運行在瀏覽器端和Node.js中,Vue應(yīng)用的網(wǎng)絡(luò)請求基本都是使用它完成的。axios有很多優(yōu)秀的特性,如支持請求的攔截和響應(yīng)、取消請求、JSON自動轉(zhuǎn)換、客戶端防御XSRF等。
使用axios之前,需要先在項目中安裝axios插件,安裝命令如下。
//npm npm install axios --save //yarn yarn add react-native-axios
作為一款優(yōu)秀的網(wǎng)絡(luò)請求庫,axios支持基本的GET、POST、DELET和PUT等請求。比如,使用axios進行GET請求時就可以使用axios.get()方法和使用axios(config { … })兩種方式,如下所示。
axios.get('/getData', {
params: {
id: 123
}
}).then(function (response) {
console.log(response);
})
axios({
method: 'GET',
url: '/getData',
params: {
id: 123,
}
}).then(function (response) {
console.log(response);
});
可以看到,如果直接使用axios進行網(wǎng)絡(luò)請求會產(chǎn)生大量的冗余代碼,所以在實際開發(fā)過程中,還需要對axios請求進行一些封裝,以方便后期的使用,如下所示。
可以看到,如果直接使用axios進行網(wǎng)絡(luò)請求會產(chǎn)生大量的冗余代碼,所以在實際開發(fā)過程中,還需要對axios請求進行一些封裝,以方便后期的使用,如下所示。
const request = axios.create({
transformResponse: [
function (data) {
return data;
},
],
});
const defaultOptions = { //處理默認配置
url: '',
userAgent: 'BIZSTREAM Library',
authentication: {
integration: {
access_token: undefined,
},
},
};
class Bizstream {
init(options) {
this.configuration = {...defaultOptions, ...options};
this.base_url = this.configuration.url;
this.root_path = '';
}
post(path, params, data, type = ADMIN_TYPE) {
return this.send(path, 'POST', params, data, type);
}
get(path, params, data, type = ADMIN_TYPE) {
return this.send(path, 'GET', params, data, type);
}
send(path, method, params, data, type, headersOption) {
const url = `${this.base_url}${this.root_path}${path}`;
const headers = {
'User-Agent': this.configuration.userAgent,
'Content-Type': 'application/json',
...headersOption,
};
return new Promise((resolve, reject) => {
request({url, method, headers, params, data}).then(response => {
…. //處理返回結(jié)果
});
});
}
}
export const bizStream = new Bizstream();
經(jīng)過封裝處理后,進行網(wǎng)絡(luò)請求的時候就方便了許多,并且對于一些通用的返回結(jié)果我們也在網(wǎng)絡(luò)層進行了處理。實際使用時,開發(fā)者只需要按照要求傳入需要的參數(shù),然后再通過異步函數(shù)處理返回的結(jié)果即可,如下所示。
//GET請求
const hotMovie='';
const data = await apiRequest.get(hotMovie);
//POST請求
let baseUrl = '';
let param = {
pageNumber: 0,
cityCd: 31,
};
const data = await apiRequest.post(baseUrl, param);
到此這篇關(guān)于關(guān)于React Native使用axios進行網(wǎng)絡(luò)請求的方法的文章就介紹到這了,更多相關(guān)React Native網(wǎng)絡(luò)請求內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用React?Hooks模擬生命周期的實現(xiàn)方法
這篇文章主要介紹了使用React?Hooks模擬生命周期,本文舉例說明如何使用 hooks 來模擬比較常見的 class 組件生命周期,需要的朋友可以參考下2023-02-02
React?SSR架構(gòu)Streaming?Render與Selective?Hydration解析
這篇文章主要為大家介紹了React?SSR架構(gòu)Streaming?Render與Selective?Hydration解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
react組件的創(chuàng)建與更新實現(xiàn)流程詳解
React組件分為函數(shù)組件與class組件;函數(shù)組件是無狀態(tài)組件,class稱為類組件;函數(shù)組件只有props,沒有自己的私有數(shù)據(jù)和生命周期函數(shù);class組件有自己私有數(shù)據(jù)(this.state)和生命周期函數(shù)2022-10-10

