news 2026/6/15 10:51:26

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/15 11:56:41

AI虚拟房地产架构关键步骤解析:架构师规避项目风险的7个方法!

AI虚拟房地产架构实战:从0到1搭建与风险规避的7个关键 一、引言:虚拟地产项目的“踩坑”困境,你遇到过吗? 去年我参与了一个AI虚拟售楼处项目:客户要求“沉浸式体验”,我们加班加点用Unreal Engine做了超…

作者头像 李华
网站建设 2026/6/10 6:49:40

巴菲特的投资理念与风险承受能力

巴菲特的投资理念与风险承受能力关键词:巴菲特、投资理念、风险承受能力、价值投资、长期投资摘要:本文深入探讨了巴菲特的投资理念与风险承受能力。首先介绍了相关背景知识,包括目的、预期读者等内容。接着阐述了巴菲特投资理念的核心概念&a…

作者头像 李华
网站建设 2026/6/15 17:25:08

六音音源完整修复指南:快速解决音乐播放难题

六音音源完整修复指南:快速解决音乐播放难题 【免费下载链接】New_lxmusic_source 六音音源修复版 项目地址: https://gitcode.com/gh_mirrors/ne/New_lxmusic_source 还在为洛雪音乐升级后无法播放歌曲而烦恼吗?六音音源修复版为您提供完美的解决…

作者头像 李华
网站建设 2026/6/15 18:13:28

构建智能政策分析系统的完整指南:从零到一的LangChain实战

构建智能政策分析系统的完整指南:从零到一的LangChain实战 【免费下载链接】langchain 项目地址: https://gitcode.com/gh_mirrors/lan/langchain 在数字化时代,科技政策分析已成为推动技术创新的关键环节。面对海量政策文档和复杂的技术环境&am…

作者头像 李华
网站建设 2026/6/13 1:40:05

Linux服务器部署LobeChat并开机自启的正确姿势

Linux服务器部署LobeChat并开机自启的正确姿势 在如今大语言模型(LLM)快速普及的时代,越来越多开发者和企业希望拥有一个可私有化部署、安全可控的AI对话门户。直接调用OpenAI或Claude这类平台的API虽然简单,但缺乏统一入口、难以…

作者头像 李华
网站建设 2026/6/16 9:18:29

洛雪音乐修复新方案:三分钟解决播放难题终极教程

洛雪音乐修复新方案:三分钟解决播放难题终极教程 【免费下载链接】New_lxmusic_source 六音音源修复版 项目地址: https://gitcode.com/gh_mirrors/ne/New_lxmusic_source 还在为升级后的洛雪音乐无法正常播放而困扰吗?别着急,这里为您…

作者头像 李华