vue3 axio二次封装
时间: 2023-08-23 10:17:50 浏览: 183
当你在Vue 3中使用Axios时,可以通过二次封装来简化其使用。下面是一个示例:
先,安装Axios:
```
npm install axios
```
然后,在你的项目中创建一个名为`api.js`的文件,用于封装Axios:
```javascript
import axios from 'axios';
const instance = axios.create({
baseURL: 'https://api.example.com', // 设置你的API地址
timeout: 5000, // 设置请求超时时间
});
// 请求拦截器
instance.interceptors.request.use(
(config) => {
// 在发送请求之前做一些处理,例如添加token等
return config;
},
(error) => {
// 处理请求错误
return Promise.reject(error);
}
);
// 响应拦截器
instance.interceptors.response.use(
(response) => {
// 对响应数据进行处理,例如解析数据等
return response.data;
},
(error) => {
// 处理响应错误
return Promise.reject(error);
}
);
export default instance;
```
现在,你可以在需要使用Axios的组件中引入`api.js`并发送请求了。例如,你可以在一个名为`UserList.vue`的组件中使用:
```vue
<template>
<div>
<ul>
<li v-for="user in userList" :key="user.id">{{ user.name }}</li>
</ul>
</div>
</template>
<script>
import api from './api.js';
export default {
data() {
return {
userList: [],
};
},
mounted() {
this.fetchUserList();
},
methods: {
fetchUserList() {
api.get('/users')
.then((response) => {
this.userList = response;
})
.catch((error) => {
console.error(error);
});
},
},
};
</script>
```
在上面的示例中,我们通过引入`api.js`来发送GET请求获取用户列表,并将结果保存在`userList`数据中。
这就是一个简单的Axios二次封装的示例,你可以根据自己的需求进行扩展和修改。
阅读全文