当前位置: 首页 > news >正文

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)

http://www.cnnetsun.cn/news/93309.html

相关文章:

  • 跨文化团队 brainstorm 没创意?提示工程架构师的提示法,激发灵感
  • 微信朋友圈营销转化,5个技巧轻松提升销售额
  • LobeChat版本升级注意事项与迁移路径
  • Zotero Style插件:如何用5个步骤彻底改变你的文献管理体验?
  • 如何监控LobeChat服务状态并设置告警机制?
  • 企业级文档预览架构深度解析:wps-view-vue高性能集成完整指南
  • Applite终极指南:告别命令行,拥抱可视化Homebrew Cask管理
  • 计算机体系结构中的中断处理机制:硬件响应与软件识别的协同架构
  • Wallpaper Engine下载器:3步轻松获取海量创意工坊壁纸!
  • 延迟优化实战:LobeChat端到端响应时间缩短30%
  • 工业监控系统构建指南:FUXA开源SCADA平台的快速上手与实战应用
  • 原来是“图”!
  • 力扣(LeetCode) 35: 搜索插入位置 - 解法思路
  • 读书笔记整理:LobeChat提炼书中精华
  • 黑天鹅养殖技术性价比高的公司
  • 终极B站视频下载指南:专业级超高清内容获取方案
  • 我发现糖尿病预测跑出-15%后来才知道漏处理缺失值补多重插补才稳住
  • 跨境电商物流选择指南:从痛点分析到智能决策
  • 百度网盘解析工具:3分钟告别下载限速烦恼
  • FreeMove终极指南:Windows文件迁移的革命性解决方案
  • FeHelper全能工具箱:前端开发效率提升终极指南
  • QQ空间历史说说完整备份指南:永久珍藏你的数字记忆
  • 十大MCP Server方案,让DevOps步入智能新时代
  • VUE3:深入浅出探究pinia、provide\inject在多层组件页面是怎么使用的
  • Molecular Operating Environment (MOE) 完整安装与配置指南
  • LobeChat能否用于生成直播话术?电商主播提词器
  • 终极C++网络编程:构建高性能HTTP服务的完整指南
  • 显卡驱动终极清理指南:一键彻底解决兼容性问题
  • Zotero GPT:用AI重新定义文献管理效率
  • LobeChat与LangChain结合应用:打造复杂AI工作流