vue 封装axios
时间: 2023-10-05 18:06:18 浏览: 90
如何封装vue中的axios?
在封装axios时,我们可以按照以下步骤进行:
1. 安装axios
在vue项目中使用axios需要先安装它,可以通过npm或者yarn安装。
npm安装:
```npm install axios --save```
yarn安装:
```yarn add axios```
2. 创建封装函数
我们可以创建一个独立的js文件,来封装axios的请求功能,例如:
```javascript
import axios from 'axios'
const service = axios.create({
baseURL: 'http://localhost:8080/api',
timeout: 5000 // request timeout
})
// request interceptor
service.interceptors.request.use(
config => {
// do something before request is sent
return config
},
error => {
// do something with request error
console.log(error) // for debug
return Promise.reject(error)
}
)
// response interceptor
service.interceptors.response.use(
/**
* If you want to get http information such as headers or status
* Please return response => response
*/
/**
* Determine the request status by custom code
* Here is just an example
* You can also judge the status by HTTP Status Code
*/
response => {
const res = response.data
// if the custom code is not 20000, it is judged as an error.
if (res.code !== 20000) {
console.log(res.message || 'Error')
} else {
return res
}
},
error => {
console.log('err' + error) // for debug
return Promise.reject(error)
}
)
export default service
```
在以上代码中,我们创建了一个service对象,并使用create方法来创建一个axios实例,设置了请求的基础URL和timeout。然后我们可以在拦截器中进行一些请求和响应的处理。
3. 使用封装函数
在vue组件中使用时,我们需要导入封装函数,并调用它即可,例如:
```javascript
import request from '@/utils/request'
export function getList(params) {
return request({
url: '/list',
method: 'get',
params
})
}
```
以上代码中,我们导入了封装好的request函数,并在getList函数中使用它来发送请求,具体的请求配置可以在getList函数中传入,例如url、method等。
阅读全文