news 2026/6/23 23:00:58

axios二次封装以及拦截器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
axios二次封装以及拦截器

(对axios还不熟悉,可能有不对的地方,欢迎指正)

一、二次封装
  • axios二次封装:从请求中提取相同的功能封装成一个组件,响应也类似。可以提高代码复用性,并且集中处理请求/相应逻辑。
  • 二次封装步骤:
  1. 创建封装文件,一般在src/utils文件夹,然后创建axios实例
// 创建 axios 实例constrequest=axios.create({baseURL:process.env.VUE_APP_BASE_API,// API 基础路径timeout:10000,// 超时时间headers:{// 默认请求头'Content-Type':'application/json'}});
  1. 添加请求拦截器
  2. 添加响应拦截器
  3. 添加辅助函数
// 处理 token 过期functionhandleTokenExpired(){// 清除 tokenlocalStorage.removeItem('token');sessionStorage.removeItem('token');// 显示提示Modal.confirm({title:'登录已过期',content:'您的登录已过期,请重新登录',okText:'重新登录',onOk(){// 跳转到登录页router.replace('/login');}});}// 处理业务错误functionhandleBusinessError(code,message){consterrorMessages={1001:'用户名或密码错误',1002:'验证码错误',1003:'账号已被锁定',2001:'token 已过期',2002:'token 无效',// ... 其他业务错误码};consterrorMsg=errorMessages[code]||message||'操作失败';message.error(errorMsg);// 特殊错误码处理if([2001,2002].includes(code)){handleTokenExpired();}}
  1. 封装常用请求方法
  2. … …
二、拦截器

以请求拦截器为例,执行流程

请求 → 请求拦截器 → 服务器 → 响应 → 响应拦截器 → 你的代码

  • 请求拦截器用于统一处理响应数据
axios.interceptors.response.use((response)=>{// 假设后端返回 { code: 0, data: {...}, message: 'success' }if(response.data.code===0){returnresponse.data.data;// 直接返回业务数据}else{returnPromise.reject(response.data.message);}},(error)=>{returnPromise.reject(error);});// 使用:直接拿到业务数据,不用再 response.data.dataconstdata=awaitaxios.get('/api/user');
  • 完整的请求生命周期

请求拦截器:在请求发出前执行
响应拦截器:在响应到达后执行
执行顺序:
请求拦截器:按代码顺序执行(1→2→3)
响应拦截器:代码的逆序,后进先出,后写的先执行(3→2→1)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 14:21:04

跨文化团队 brainstorm 没创意?提示工程架构师的提示法,激发灵感

跨文化团队Brainstorm没创意?用提示工程架构师的5种提示法,让灵感炸出来 一、引言:跨文化团队的“创意死局”,你遇到过吗? 上周和做海外产品的朋友聊天,她倒了一肚子苦水: “我们团队有美国人、…

作者头像 李华
网站建设 2026/6/23 16:37:24

微信朋友圈营销转化,5个技巧轻松提升销售额

你有没有发现,朋友圈越来越难卖了? 每天早上刷屏十几条产品广告,换来的不是订单,而是被屏蔽的红线;精心写了一条长文案,留言区一片寂静,甚至连个点赞都没有……据服务的150企业调研显示&#x…

作者头像 李华
网站建设 2026/6/23 19:47:26

LobeChat版本升级注意事项与迁移路径

LobeChat版本升级注意事项与迁移路径 在如今 AI 技术飞速演进的背景下,大语言模型(LLM)已不再是实验室里的概念,而是实实在在走进了企业和个人的工作流。无论是写代码、做方案,还是处理客服对话,越来越多的…

作者头像 李华
网站建设 2026/6/23 19:18:44

Zotero Style插件:如何用5个步骤彻底改变你的文献管理体验?

Zotero Style插件:如何用5个步骤彻底改变你的文献管理体验? 【免费下载链接】zotero-style zotero-style - 一个 Zotero 插件,提供了一系列功能来增强 Zotero 的用户体验,如阅读进度可视化和标签管理,适合研究人员和学…

作者头像 李华
网站建设 2026/6/23 19:22:35

如何监控LobeChat服务状态并设置告警机制?

如何监控LobeChat服务状态并设置告警机制? 在AI助手逐渐成为企业生产力核心组件的今天,一个看似微小的服务中断——比如用户提问后迟迟得不到回应——都可能引发连锁反应:客服响应延迟、知识库查询失败、自动化流程卡顿。而LobeChat作为一款功…

作者头像 李华
网站建设 2026/6/23 19:46:25

企业级文档预览架构深度解析:wps-view-vue高性能集成完整指南

企业级文档预览架构深度解析:wps-view-vue高性能集成完整指南 【免费下载链接】wps-view-vue wps在线编辑、预览前端vue项目,基于es6 项目地址: https://gitcode.com/gh_mirrors/wp/wps-view-vue wps-view-vue是一个基于Vue.js和ES6开发的企业级文…

作者头像 李华