vue3 + vant + ts 配置axios二次封装
时间: 2023-09-07 15:12:01 浏览: 161
vue+ts下对axios的封装实现
可以参考以下步骤:
1. 首先安装 axios 和 qs(如果需要)
2. 在 main.js 中引入 axios 并进行二次封装:
```
import axios from 'axios'
import qs from 'qs'
axios.defaults.baseURL = 'http://api.xxx.com' // 设置接口基地址
axios.defaults.timeout = 10000 // 设置超时时间
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8' // 设置默认请求头
axios.interceptors.request.use(config => {
// 在请求发送之前做一些处理
config.headers.token = localStorage.getItem('token') || ''
return config
}, error => {
// 出错处理
return Promise.reject(error)
})
axios.interceptors.response.use(response => {
// 在响应成功处理之前做一些处理
return response
}, error => {
// 响应错误处理
return Promise.reject(error)
})
function get (url, params) {
return new Promise((resolve, reject) => {
axios.get(url, {
params
}).then(res => {
resolve(res.data)
}).catch(err => {
reject(err.data)
})
})
}
function post (url, data) {
return new Promise((resolve, reject) => {
axios.post(url, qs.stringify(data)).then(res => {
resolve(res.data)
}).catch(err => {
reject(err.data)
})
})
}
export default {
get,
post
}
```
3. 在组件中使用二次封装后的 axios:
```
import request from '@/utils/request'
methods: {
getData () {
request.get('/api/getData', {
id: '123456'
}).then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})
}
}
```
以上是对于vue3 + vant + ts 配置axios的二次封装的一种实现,仅供参考。
阅读全文