1 axios是干什么的?
XMLHttpRequest、jq、fetch、axios都是用來向服務器端發(fā)送請求,并獲得響應
2 為什么要進行二次封裝axios?
為了封裝請求攔截器,響應攔截器
請求攔截器:可以在發(fā)送請求之前可以處理一些業(yè)務
響應攔截器:當服務器數(shù)據(jù)返回以后,可以處理一些事情
在src下創(chuàng)建一個api文件夾,這里面放著我們項目中對一些api的請求
requests是我們對axios的二次封裝
/* 對于axios進行二次封裝 */
import axios from "axios"
//1:利用axios對象的方法create,去創(chuàng)建一個axios實例
//2:request就是axios,我們進行一下配置
const requests = axios.create({
//配置對象
//基礎(chǔ)路徑,發(fā)送請求的時候,路徑當中會出現(xiàn)api
baseURL:"/api",
//配置請求超時時間
timeout:2000,
});
//請求攔截器:再發(fā)請求指示之前,請求攔截器可以檢測到,可以在請求發(fā)出去之前做一些事情
//interceptors攔截器
requests.interceptors.request.use((config)=>{
//config:配置對象,對象里面有一個屬性很重要,header請求頭
return config;
});
//響應攔截器
requests.interceptors.response.use((res)=>{
//成功的回調(diào)函數(shù):服務器響應數(shù)據(jù)回來以后,響應攔截器可以檢測到,可以做一些事情
return res.data;
},(error)=>{
//響應失敗的回調(diào)函數(shù)
return Promise.reject(new Error('faile'));
}
)
//向外暴露
export default requests
經(jīng)過上面的改寫,requests就相當于axios,我們可以用requests來發(fā)送請求
例如,在api下的index.js中文章來源:http://www.zghlxwxcb.cn/news/detail-411297.html
在此文件中,我們對api進行統(tǒng)一的管理,可以將對某個api的請求封裝為方法,當項目中的多個地方都需要訪問該api時,就可以調(diào)用該方法,提高開發(fā)效率,也便于當api路徑更改時,造成的維護困難文章來源地址http://www.zghlxwxcb.cn/news/detail-411297.html
import requests from "./request";
export const req=()=>{
//發(fā)請求
return requests({
//注意axios發(fā)請求返回的結(jié)果是Promise對象
url:" ",//這里是我們要訪問的api接口
method:'get'//注意該接口應該采用的訪問方法,get還是post
})
}
到了這里,關(guān)于axios的二次封裝的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!