vue3封装axios全局使用
时间: 2023-08-28 09:17:44 浏览: 48
在 Vue 3 中封装 Axios 并全局使用的步骤如下:
1. 安装 Axios
首先,需要安装 Axios:
```
npm install axios
```
2. 封装 Axios
在 src 目录下创建一个 api 目录,并在该目录下创建一个 axios.js 文件,用于封装 Axios:
```javascript
import axios from 'axios'
const instance = axios.create({
baseURL: 'https://api.example.com',
})
export default instance
```
在上面的代码中,我们使用 `axios.create()` 方法创建了一个 Axios 实例,并设置了基础 URL。
接下来,我们可以添加请求拦截器和响应拦截器:
```javascript
import axios from 'axios'
const instance = axios.create({
baseURL: 'https://api.example.com',
})
instance.interceptors.request.use(
(config) => {
// 在请求发送之前做些什么
return config
},
(error) => {
// 对请求错误做些什么
return Promise.reject(error)
}
)
instance.interceptors.response.use(
(response) => {
// 对响应数据做些什么
return response
},
(error) => {
// 对响应错误做些什么
return Promise.reject(error)
}
)
export default instance
```
在上面的代码中,我们使用 `instance.interceptors.request.use()` 方法添加了一个请求拦截器,用于在请求发送之前对请求进行处理。同时,我们还使用 `instance.interceptors.response.use()` 方法添加了一个响应拦截器,用于对响应进行处理。
3. 全局使用 Axios
在 main.js 文件中,将 Axios 注册为全局插件,以便在整个应用程序中使用:
```javascript
import { createApp } from 'vue'
import App from './App.vue'
import axios from './api/axios'
const app = createApp(App)
app.config.globalProperties.$http = axios
app.mount('#app')
```
在上面的代码中,我们在 Vue 的全局配置中添加了一个 `$http` 属性,并将 Axios 实例赋值给它。这样,在组件中就可以使用 `$http` 进行请求了:
```javascript
export default {
methods: {
fetchData() {
this.$http.get('/data').then((response) => {
// 处理响应
})
},
},
}
```
这就是在 Vue 3 中封装 Axios 并全局使用的步骤。