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

相关推荐
Java后端的Ai之路4 分钟前
01-React基础教程
开发语言·前端·python·react.js·前端框架
颜进强6 分钟前
25 · NestJs DurableProviders 持久化 Provider:把 ContextId 当缓存键
前端·后端·ai编程
爱丶不疚6 分钟前
Electron: Sentry 都采集了什么?你知道吗
前端·electron
恋猫de小郭10 分钟前
Dart 4.0 要彻底移除 dart:mirrors,Augmentations 应该要来了
android·前端·flutter
流水白开11 分钟前
React的Virtual DOM、Diff算法和Fiber
前端·react.js
乘风gg13 分钟前
Spec Kit vs OpenSpec vs Superpowers:我为什么最后自己搭了一套
前端·ai编程·claude
wdssmq14 分钟前
「折腾」Vue 简单的状态管理实践
vue.js
颜进强16 分钟前
24 · NestJs LazyLoadingModules 懒加载模块:你在前端天天 `import()` 懒路由,但 Nest 偏偏不能懒加载路由
前端·后端·ai编程