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

相关推荐
程序员黑豆2 小时前
鸿蒙应用开发:V1与V2版本数据持久化实战教程
前端·harmonyos
小月土星6 小时前
React Router 前端路由深度解析:从传统后端路由到现代 SPA 的完整演进
前端
程序员黑豆6 小时前
鸿蒙开发 Navigation 路由教程:从入门到实战
前端·harmonyos
用户938515635078 小时前
从零理解 React Router v6:每一个 API 都是怎么工作的
前端·javascript·全栈
用户0595401744610 小时前
Redis缓存回滚踩坑实录:一个配置失误,让我在凌晨3点丢了3000条数据
前端·css
kyriewen11 小时前
别再这样写条件渲染了——你的React组件里藏着这5种定时炸弹
前端·javascript·react.js
IT_陈寒11 小时前
Redis缓存击穿把我坑惨了,原来这样设过期时间才靠谱
前端·人工智能·后端
用户9385156350712 小时前
从"坐电梯"到"前端路由"——深入理解 Hash 路由原理
前端·typescript·全栈
梦想CAD控件12 小时前
网页端CAD的图形选择、编辑与夹点操作教程
前端·javascript·node.js
妙码生花12 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(五十二):管理员权限检查中间件,AI 随意放行预闯大祸
前端·后端·go