# Module Spec：vab-router-view（路由视图壳：keep-alive + 过渡 + reload 事件）

module:
  id: vab-router-view
  name: VabRouterView（router-view + keep-alive + reload）
  type: ui
  entrypoints:
    - library/components/VabRouterView/index.vue

public_api:
  concept:
    - "统一承载页面 router-view，提供 keep-alive include 列表与过渡动画"
    - "监听事件总线：reload-router-view，用于刷新当前视图缓存"

dependency_closure:
  runtime:
    - "vue-router：useRoute / <router-view>"
    - "plugin-vab：$sub/$unsub（事件订阅）"
    - "store-settings：theme.showProgressBar / theme.showPageTransition"
    - "store-tabs：visitedRoutes（生成 keepAliveNameList）"
    - "utils/routes：handleActivePath（生成 routerKey）"
    - "config：keepAliveMaxNum"
    - "nprogress（显示刷新进度条）"

acceptance:
  - "路由切换时 keep-alive include 列表随 visitedRoutes 更新"
  - "$sub('reload-router-view') 触发后，当前视图能被重新渲染（routerKey 变更）"

pitfalls:
  - "存在 get-code 事件并依赖组件的 __source 字段；不同构建/插件下可能不存在"
  - "未安装 plugin-vab 时 $sub/$unsub 不存在，reload/get-code 事件不会工作"
