为什么要对axios进行封装
- 在vue项目中,和后台交互获取数据这块,我们通常使用的是
axios
库,它是基于promise
的http
库,可运行在浏览器端和node.js
中。axios
有很多优秀的特性,例如拦截请求和响应、取消请求、转换json
、客户端防御XSRF
等。 - 在一个完整的项目中,和服务端的交互会很频繁,一个项目会有很多请求,冗余代码很多。所以将请求封装,统一管理还是很有必要的。
axios
的封装主要目的就是在帮助我们简化项目代码和利于后期的更新维护
。
axios的安装
npm install axios; // 安装axios
axios的封装
- 一般在项目的src目录中会新建一个request文件夹,然后在里面新建一个http.js和一个api.js文件。http.js文件用来封装axios,而api.js用来统一管理接口。
代码示例:
import axios from 'axios' // 引入axios
import route from '../router/index'
const http = axios.create({
baseURL: 'http://39.100.7.70:81/', // 统一的URL路径
timeout: 5000 // 设置默认的请求超时时间
})
// 请求拦截器
request.interceptors.request.use(config => {
return config;
}, error => {
return Promise.reject(error);
});
// 响应拦截器
request.interceptors.response.use(response => {
return response;
}, error => {
route.push('/myerror')
return Promise.reject(error);
});
export default http // 导出 http