vue拦截器是什么,如何使用

Vue拦截器是一种用来拦截并处理HTTP请求和响应的机制,它可以在请求或响应发送前或后进行一些预处理或处理。在Vue中,可以使用axios库来实现拦截器,axios库是一个基于Promise的HTTP客户端,可以用于浏览器和Node.js平台。

使用axios拦截器需要先创建一个axios实例,然后可以通过该实例的interceptors属性来定义请求拦截器和响应拦截器。

请求拦截器可以用来在发送请求前进行一些统一的处理,如添加公共请求头、设置请求超时时间等。响应拦截器可以用来统一处理服务器返回的响应数据,如对接口返回的数据进行统一处理、处理错误信息等。

以下是axios拦截器的使用方法:

复制代码
import axios from 'axios';

// 创建 axios 实例
const instance = axios.create({
  baseURL: 'http://api.example.com',
  timeout: 5000,
});

// 请求拦截器
instance.interceptors.request.use(config => {
  // 在发送请求前做些什么
  config.headers.Authorization = window.localStorage.getItem('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实例,然后定义了请求拦截器和响应拦截器。在请求拦截器中,我们添加了一个公共请求头Authorization,并将其值设置为本地存储中的token值。在响应拦截器中,我们对服务器返回的响应数据进行了处理,返回了响应数据中的data部分。如果响应出错,我们则返回了一个Promise对象,使调用拦截器的代码能够获取到错误信息。

最后,我们将axios实例导出,可以在其他组件中引用使用。通过这种方式,我们可以避免在每个组件中都要写请求拦截器和响应拦截器的重复代码,提高了开发效率,使代码更加简洁易懂。

相关推荐
烛衔溟31 分钟前
TypeScript 接口的基本使用 —— 定义对象形状
前端·javascript·typescript
铁皮饭盒1 小时前
成为AI全栈 - 第3课:路由 RESTful Elysia 状态码 设计规范
前端·后端·全栈
顾昂_1 小时前
Web 性能优化完全指南
前端·面试·性能优化
前端程序媛-Tian2 小时前
前端 AI 提效实战:从 0 到 1 打造团队专属 AI 代码评审工具
前端·人工智能·ai
支付宝体验科技2 小时前
Ant Design Pro v6.0.0 发布
前端
T畅N2 小时前
审批流设计器(前端)
前端·elementui·vue·html·流程图·js
AlunYegeer3 小时前
JAVA,以后端的视角理解前端。在全栈的路上迈出第一步。
java·开发语言·前端
IT_陈寒3 小时前
Redis这个内存杀手,差点让我们运维半夜追杀我
前端·人工智能·后端
子兮曰3 小时前
DeepSeek TUI:原生 Rust 打造的终端 AI 编码 Agent
前端·javascript·后端
DFT计算杂谈4 小时前
自动化脚本一键绘制三元化合物相图
java·运维·服务器·开发语言·前端·python·自动化