Garfish 的路由管理系统是微前端架构的核心组件之一,负责协调主应用和子应用之间的路由关系。
路由管理核心功能
1. 路由注册
- 子应用路由配置:每个子应用需要声明自己的路由规则
- 路由前缀:为子应用设置独立的路由前缀,避免冲突
- 路由映射:建立 URL 与子应用的映射关系
- 示例配置:
javascriptGarfish.run({ apps: [ { name: 'app1', entry: '//localhost:3001', activeWhen: '/app1', routes: [ { path: '/', component: Home }, { path: '/about', component: About } ] } ] });
2. 路由监听与分发
- 监听 URL 变化:自动监听浏览器路由变化
- 路由匹配:根据 URL 匹配对应的子应用
- 路由分发:将路由信息传递给对应的子应用
- 支持多种路由模式:History API、Hash 模式
3. 路由同步
- 主子应用同步:保持主应用和子应用的路由状态一致
- 跨应用导航:支持从子应用导航到其他子应用
- 路由参数传递:在应用切换时传递路由参数
- 面包屑导航:支持跨应用的面包屑导航
4. 路由守卫
- 全局前置守卫:在路由切换前执行逻辑
- 应用级守卫:针对特定子应用的路由守卫
- 权限控制:基于路由的权限验证
- 示例:
javascriptGarfish.router.beforeEach((to, from) => { if (to.path === '/admin' && !hasPermission()) { return '/login'; } });
路由隔离策略
1. 路由前缀隔离
- 每个子应用拥有独立的路由前缀
- 避免路由冲突
- 便于路由管理和维护
2. 路由作用域
- 子应用只能访问自己的路由空间
- 防止子应用间的路由干扰
- 确保路由的独立性和安全性
3. 路由降级
- 在子应用加载失败时提供降级路由
- 显示错误页面或重定向到安全页面
- 提升用户体验
最佳实践
- 统一路由规范:制定统一的路由命名和结构规范
- 路由懒加载:结合路由懒加载优化性能
- 路由缓存:合理使用路由缓存减少重复加载
- 错误处理:完善路由错误处理机制
- SEO 优化:确保路由配置支持 SEO
通过有效的路由管理,可以实现子应用间的无缝切换和协同工作。