响应拦截器不直接统计频率,而是将错误事件交由pinia记录、聚合和计数;拦截器捕获错误并提取url、status、code、timestamp等字段上报,pinia store按时间窗口聚合并提供频率查询方法,支撑熔断、告警等行为决策。

响应拦截器本身不直接“统计频率”,但它可以作为触发点,把每次错误事件交由 Pinia 状态管理模块来记录、聚合和计数。关键在于:拦截器负责捕获,Pinia 负责存储与计算。
在响应拦截器中上报错误到 Pinia
在 Axios 响应拦截器里,一旦发现非 200 或业务失败码(比如 resultCode !== 200),不要只弹提示,而是调用 Pinia store 的方法记录一次错误:
- 提取关键维度:接口路径(config.url)、HTTP 状态码(response.status)、业务码(如 response.data?.resultCode)、时间戳
- 避免直接存整个 response 对象(可能含敏感数据或循环引用),只取结构化字段
- 示例调用:errorStore.record({ url: config.url, status: response.status, code: res.data?.resultCode, timestamp: Date.now() })
Pinia Store 中设计错误聚合逻辑
定义一个 errorStore,用 reactive 或 ref 管理错误列表,并提供按时间窗口聚合的方法:
- 用数组暂存最近 N 条错误(如最近 5 分钟内),超出则清理旧条目
- 提供 getFrequencyByUrl(url, minutes = 5) 方法:筛选该 URL 在指定分钟内的错误次数
- 可额外支持按 status + resultCode 组合去重计数,识别高频失败类型
配合业务做轻量级熔断或提示
频率统计不是为看数字,而是驱动行为。例如:
- 某接口 1 分钟内连续失败 ≥3 次 → 自动禁用对应按钮,显示“服务暂不可用”
- 登录接口错误频次突增 → 触发上报给监控平台,同时本地弹出运营告警浮层
- 在开发工具面板中实时展示各接口错误率(需搭配 Vue Devtools 插件扩展)
不需要引入复杂指标系统,用 Pinia + 时间戳过滤 + 数组计数,就能实现轻量、可控、可调试的错误频率感知。核心是让拦截器成为“传感器”,Pinia 成为“本地分析中心”。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










