vue2项目二次封装axios
时间: 2023-10-09 17:11:00 浏览: 119
对于Vue2项目的二次封装axios,可以按照以下步骤进行:
1. 安装axios:在项目根目录中运行以下命令安装axios:
```
npm install axios
```
2. 创建封装文件:在项目的src目录下创建一个api文件夹,并在该文件夹下创建一个request.js文件(或者其他你喜欢的文件名)。
3. 在request.js文件中引入axios和Vue:
```javascript
import axios from 'axios'
import Vue from 'vue'
```
4. 创建一个axios实例,并设置一些默认配置:
```javascript
const instance = axios.create({
baseURL: process.env.BASE_URL, // 设置接口根路径,可以根据需要进行配置
timeout: 10000, // 设置请求超时时间,单位为毫秒
headers: {
'Content-Type': 'application/json' // 设置请求头部类型
}
})
```
5. 添加请求拦截器,在请求发送前做一些处理,例如添加Token等:
```javascript
instance.interceptors.request.use(
config => {
// 在请求发送前做一些处理
const token = localStorage.getItem('token')
if (token) {
config.headers.Authorization = `Bearer ${token}`
}
return config
},
error => {
// 处理请求错误
console.error(error)
return Promise.reject(error)
}
)
```
6. 添加响应拦截器,对返回的数据进行处理:
```javascript
instance.interceptors.response.use(
response => {
// 对返回的数据进行处理
return response.data
},
error => {
// 处理响应错误
console.error(error)
return Promise.reject(error)
}
)
```
7. 将axios实例挂载到Vue原型上,这样在组件中可以通过this.$http来访问axios实例:
```javascript
Vue.prototype.$http = instance
```
8. 在组件中使用封装的axios:
```javascript
export default {
methods: {
fetchData() {
this.$http.get('/api/data')
.then(response => {
// 处理返回的数据
})
.catch(error => {
// 处理请求错误
})
}
}
}
```
这样就完成了Vue2项目中对axios的二次封装。你可以根据项目需求自定义一些其他的配置和处理逻辑。
阅读全文