vueaxios封装

redmaomail 2024-10-23 10:56 阅读数 23 #建站与主机

红帽云邮外贸主机

网站建设特点

 

Vue是一种流行的前端框架,能够帮助我们构建单页面应用程序。而Axios是一个基于Promise的HTTP库,用于发送异步HTTP请求。在Vue中使用Axios可以方便地与后端进行交互,获取数据并更新页面。

 

但直接在Vue组件中使用Axios可能会导致代码重复和混乱,因此我们可以将Axios进行封装,以便我们可以在整个应用程序中重复使用封装后的Axios实例,并且能够统一处理错误和添加请求拦截器等操作。

 

下面是我写的一个简单的Vue-Axios封装,以便方便地在项目中使用:

 

```javascript

// api.js

import axios from "axios";

 

// 创建一个新的Axios实例

const instance = axios.create({

baseURL: "https://api.example.com"

 

timeout: 10000

 

});

 

// 添加请求拦截器

instance.interceptors.request.use(

(config) => {

// 在请求发送之前做一些处理,比如添加请求头

config.headers["Authorization"] = "Bearer " + localStorage.getItem("token");

return config;

}

 

(error) => {

return Promise.reject(error);

}

);

 

// 添加响应拦截器

instance.interceptors.response.use(

(response) => {

// 在响应返回之后做一些处理

return response.data;

}

 

(error) => {

// 在请求出错时做一些处理

if (error.response) {

// 处理错误码,例如401 Unauthorized时跳转到登录页

if (error.response.status === 401) {

router.push("/login");

}

}

return Promise.reject(error);

}

);

 

export default instance;

```

 

上述代码是一个简单的Axios封装示例,其中我们创建了一个新的Axios实例,并添加了请求拦截器和响应拦截器。在请求拦截器中,我们可以在每个请求发送前做一些处理,比如添加请求头、设置token等。在响应拦截器中,我们可以在接收到响应后做一些处理,比如获取响应数据、处理错误等。

 

使用封装后的Axios实例非常简单,只需要在需要发送请求的地方导入`api.js`文件,然后使用`instance`进行请求即可:

 

```javascript

// 在Vue组件中发送请求

import api from "./api.js";

 

export default {

methods: {

fetchData() {

api.get("/data").then((response) => {

// 处理接收到的数据

console.log(response);

}).catch((error) => {

// 处理请求错误

console.error(error);

});

}

 

}

 

};

```

 

在上述代码中,我们导入了`api.js`文件并使用`api.get("/data")`发送了一个GET请求,然后使用`.then()`处理接收到的数据,`.catch()`处理请求错误。

 

通过封装Axios,我们可以方便地发送HTTP请求,并能够统一处理错误和添加请求拦截器等操作,从而提高代码的可维护性和可读性。


红帽云邮外贸主机

分享到:
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
上一篇:cssanimation属性 下一篇:htmldataset
    红帽云邮外贸主机
热门
    红帽云邮外贸主机
    红帽云邮外贸主机