文档目录
glen
· 预计阅读 1 分钟

createFlexAdmin 的启动顺序

本文导航
createFlexAdmin 的启动顺序

createFlexAdmin 的启动顺序

入口在 src/bootstrap.ts。createFlexAdmin 返回已经装好的 Vue 应用,宿主再 mount。顺序是固定的,排查时按这个顺序往下看。

步骤

  1. registerSubsystems(options.subsystems ?? [])。把子系统的路由、视图模块、菜单贡献、登录页定制写进内存。这一步在创建 Vue 应用之前。
  2. 如果 splitSubApp.enable 为真,打开按子系统切菜单,并记下离开子系统时回去的 home。
  3. createApp(App),注册 v-auth、v-perms 等指令,以及 Auth、Perms、图标组件。
  4. getPlatformConfig(app) 请求 platform-config.json。失败就抛错。配置里的 HttpTimeout 会写到 HTTP 客户端。
  5. setupStore、注册 ECharts、app.use(router)。
  6. applySubsystemRoutes() 把子系统静态路由加到已经创建的 router 上。
  7. router.isReady() 之后,注入响应式存储、Motion、i18n、Element Plus、Table。
  8. loadPublicSettings() 读公开站点配置,避免首屏先闪一下内置标志。
  9. 依次 await sub.install?.(app)。install 可以返回 Promise,框架会等它。

开启子系统切换

await createFlexAdmin({
  subsystems: [adminUi, cmsUi],
  splitSubApp: {
    enable: true,
    home: "/portal"
  }
});

home 由宿主决定,框架不规定必须是某个固定路径。customEntry 也由宿主自己挂到路由上,框架不替你注册这个组件。

没开启 splitSubApp 时,登录后会拉全部菜单。开启之后,没有 app 参数就不会把所有子系统菜单一次装上来。

评论

加载评论中…

上一篇 框架包、宿主和子系统 下一篇 包里导出了什么

BitLabs © 2026 · 论坛讨论 · 博客长文 · 文档手册