Skip to content

守护卸载与生命周期

守护层支持随时卸载和清理,适应 SPA 路由切换、用户登出等场景。

什么时候需要卸载/清理

场景推荐操作说明
用户登出clearState() + uninstall()清理在途状态 + 卸载守护,恢复 axios 原始行为
SPA 路由切换clearState()清理待处理状态,防止路由残留请求影响下一页面
Vue/React 组件销毁clearState()清理在途状态,避免悬挂 Promise
热更新 / 重新安装uninstall() + 重新 setupRequestGuard重新安装守护时先卸载旧实例

clearState vs uninstall

  • clearState() — 只清空能力状态(pending 请求、等待方),不影响守护安装,后续请求仍受保护
  • uninstall() — 完全移除守护层,恢复 axios 原始行为,适合退出或重建场景

使用示例

javascript
const requestManager = setupRequestGuard(axios, { /* 配置 */ });

// ---- Vue 组件销毁时清理 ----
onUnmounted(() => {
  requestManager.clearState();  // 取消等待中的 reuse、释放在途记录
});

// ---- 用户登出时完全卸载 ----
function logout() {
  requestManager.clearState();   // 先清状态
  requestManager.uninstall();    // 再卸载守护,恢复 axios 原始行为
}

// ---- SPA 路由守卫中清理 ----
router.beforeEach(() => {
  requestManager.clearState();   // 切换页面时清理上一页的残留状态
});

// ---- 热更新重装 ----
if (import.meta.hot) {
  import.meta.hot.dispose(() => {
    requestManager.uninstall();  // 旧模块销毁时卸载
  });
}

基于 MIT 许可发布