微前端的路由是如何劫持与分发的?
主应用需要统一控制哪个子应用被激活,因此要劫持路由:
- hash 路由:监听
hashchange,根据#/sub-a/...前缀激活对应子应用(简单、不依赖服务端) - history 路由:监听
popstate(及拦截pushState/replaceState),匹配activeRule(如/sub-a)激活
用户访问 /sub-vue/list
→ 主应用路由监听命中 activeRule '/sub-vue'
→ 加载并挂载 Vue 子应用,把 /list 交给它内部路由处理注意:子应用内部路由要基于「主应用分配的基路径」,否则会误触发主应用或其它子应用。qiankun 会在子应用配置 base 时自动处理。