vue中如何封装axios
时间: 2023-11-27 15:40:19 浏览: 105
react + ts or vue + ts 通用axios封装的方法。
5星 · 资源好评率100%
在Vue中封装axios的步骤如下:
1. 在src/main.js文件内引入axios,并将axios绑定到Vue的原型上:
```javascript
import axios from 'axios'
Vue.prototype.$http = axios
```
2. 创建一个新的axios实例,并进行配置:
```javascript
import axios from 'axios'
const instance = axios.create({
baseURL: 'http://api.example.com', // 设置基础URL
timeout: 5000 // 设置请求超时时间
})
```
3. 在封装的过程中,可以根据需求进行一些全局配置,例如请求拦截器、响应拦截器等:
```javascript
import axios from 'axios'
import router from '../router/index' // 引入路由
const instance = axios.create({
// ...
})
instance.interceptors.request.use(config => {
// 请求拦截逻辑,例如添加token等
return config
}, error => {
return Promise.reject(error)
})
instance.interceptors.response.use(response => {
// 响应拦截逻辑,例如处理错误信息等
return response.data
}, error => {
if (error.response) {
// 处理错误状态码逻辑
if (error.response.status === 401) {
// 未授权,跳转到登录页
router.push('/login')
}
}
return Promise.reject(error)
})
```
4. 最后,使用封装好的axios进行请求:
```javascript
import axios from 'axios'
axios.get('/api/data')
.then(response => {
console.log(response.data)
})
.catch(error => {
console.error(error)
})
```
阅读全文