Vue 3 中请求与响应拦截器怎么结合多语言配置错误提示信息

云浩小哥_6856

云浩小哥_6856

2026-10-20

194人浏览

原创

vue 3中实现多语言错误提示需将错误码映射转为i18n动态查表,响应拦截器通过闭包引用全局i18n实例调用t(error.${code})获取翻译,未命中时回退兜底,确保提示与语言切换实时同步。

vue 3 中请求与响应拦截器怎么结合多语言配置错误提示信息

Vue 3 中请求与响应拦截器结合多语言配置错误提示,核心在于把错误码映射逻辑从硬编码转为 i18n 动态查表,并确保拦截器能访问当前语言环境。不依赖具体 UI 库,也不强耦合 Pinia/Vuex,而是利用 Composition API 的响应式能力或全局 i18n 实例完成提示渲染。

响应拦截器中动态读取多语言错误文案

在响应拦截器里,后端通常返回统一结构(如 { code: 'USER_NOT_FOUND', message: '用户不存在' }),其中 code 是稳定标识,message 是默认中文。应忽略后端传的 message,改用本地化 key 查 i18n 实例:

  • 定义标准错误码映射表,例如 src/locales/errors/en.json:
    {"USER_NOT_FOUND": "User not found", "AUTH_EXPIRED": "Login expired, please log in again"}
  • 响应拦截器中不再直接弹 res.message,而是调用 t(`error.${res.code}`) 获取翻译文本
  • 若未命中 key,回退到英文兜底或显示原始 code,避免空提示

确保拦截器能访问 i18n 实例

axios 拦截器是纯函数,无法直接使用 useI18n()(需 setup 上下文)。推荐两种安全方式:

vue-composition-api-best-practices
vue-composition-api-best-practices

Vue 3 组合式 API 与

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue 教程
Vue 教程

共42课时 | 17.2万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.4万人学习

Vue.js 微实战--十天技能课堂
Vue.js 微实战--十天技能课堂

共18课时 | 1.7万人学习