###基於`vue-cli`對`axios`的封裝及使用
阿新 • • 發佈:2018-12-09
1 引入axios
檔案
import axios from 'axios';
2.建立axios
的例項物件
const request = axios.create({
baseURl: process.env.BASE_API, // config檔案下的prod.env.js中文路徑
timeout: 15000, // 請求的超時時間
});
3.傳送請求request(建立的axios的例項物件)
的攔截器
在傳送任何請求之前,都會先經過這個攔截器
request.interceptors.request.use(config => {
// 在傳送請求之前所要執行的邏輯程式碼
// 當登入使用者裡面有`token`值時,讓每一個請求攜帶token值
if(token){
config.headers.Authorization = token;
}
return config;
},error => {
// 在請求錯誤做的邏輯程式碼
return Promise.reject(error);
})
4.得到伺服器相應的資料response
的攔截器
在接受任何伺服器中的資料,都會先經過這個攔截器
request.interceptors.response.use (response => {
// 對得到相應資料做的邏輯程式碼
return response;
},error => {
// 對相應錯誤做的邏輯程式碼
return Promise.reject(error);
})
5.預設向外暴露建立這個axios
例項物件中的方法屬性
export default{
// axios.get的方法
get(url,params){
return request({
url,
method:'get' ,
params
})
},
// axios.post方法向後臺傳遞的引數為 data
post(url,params){
return request({
url,
method:'post',
data:qs.stringify(params)
})
},
// 刪除 axios.delete方法
delete(url,params){
return request({
url,
method:'delete',
params
})
},
// 更新 axios.put方法
put(url,params){
return request({
url,
method:'put',
data:qs.stringify(params)
})
}
這裡用到了ES 6中的語法,當物件名和函式名相同時,可以省略物件名;定義的操作方法,返回的是axios的例項呼叫的方法
}
6.引入axios
封裝好的方法,用來呼叫後臺介面
import server from './request';
7.呼叫後臺介面的使用語法
export const getData = (params) => {
return server.post('後臺介面的地址',params)
}
向外暴露定義的一個函式,他的返回值為呼叫後臺介面返回的資料
8.在vue
檔案中引用介面函式的語法
// 當有多個介面函式時,繼續向{}中新增即可
import {getData} from '介面的檔案路徑'
// 呼叫介面,向後臺傳遞引數,得到資料
getData(params).then(res => {
const result = res.data; // 得到的後臺資料
})