一、对于不同的请求封装不同的方法
第一种封装
思路:将不同的请求封装成对应的方法,需要使用的时候,引入模块,调用对应的方法。
// 对于数据请求的封装
// 引入
import axios from "axios";
//封装请求列表
function httpForList(){
// 返回axios
return axios({
url: '',
headers: {
'X-Client-Info': '{}',
'X-Host': 'mail.film-ticket.film.list'
}
})
}
// 封装请求详情
function httpForDetail(){
// 返回axios
return axios({
url: '',
headers: {
'X-Client-Info': '{}',
'X-Host': 'mail.film-ticket.film.list'
}
})
}
// 抛出
export default {
httpForDetail,
httpForList
}
二、对于固定使用的属性进行封装
第二种封装
思路:使用axios.create
对固定使用的属性封装,掉用直接添加其他不同的属性即可。
三、给axios添加拦截器
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
// 在发送请求之前做些什么
return config;
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error);
});
// 添加响应拦截器
axios.interceptors.response.use(function (response) {
// 2xx 范围内的状态码都会触发该函数。
// 对响应数据做点什么
return response;
}, function (error) {
// 超出 2xx 范围的状态码都会触发该函数。
// 对响应错误做点什么
return Promise.reject(error);
});
如果axios封装成其他的名称要修改