乐闻世界logo
搜索文章和话题

Garfish 的路由管理系统如何工作,如何实现主子应用的路由协同?

2月21日 16:01

Garfish 的路由管理系统是微前端架构的核心组件之一,负责协调主应用和子应用之间的路由关系。

路由管理核心功能

1. 路由注册

  • 子应用路由配置:每个子应用需要声明自己的路由规则
  • 路由前缀:为子应用设置独立的路由前缀,避免冲突
  • 路由映射:建立 URL 与子应用的映射关系
  • 示例配置
javascript
Garfish.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. 路由守卫

  • 全局前置守卫:在路由切换前执行逻辑
  • 应用级守卫:针对特定子应用的路由守卫
  • 权限控制:基于路由的权限验证
  • 示例
javascript
Garfish.router.beforeEach((to, from) => { if (to.path === '/admin' && !hasPermission()) { return '/login'; } });

路由隔离策略

1. 路由前缀隔离

  • 每个子应用拥有独立的路由前缀
  • 避免路由冲突
  • 便于路由管理和维护

2. 路由作用域

  • 子应用只能访问自己的路由空间
  • 防止子应用间的路由干扰
  • 确保路由的独立性和安全性

3. 路由降级

  • 在子应用加载失败时提供降级路由
  • 显示错误页面或重定向到安全页面
  • 提升用户体验

最佳实践

  • 统一路由规范:制定统一的路由命名和结构规范
  • 路由懒加载:结合路由懒加载优化性能
  • 路由缓存:合理使用路由缓存减少重复加载
  • 错误处理:完善路由错误处理机制
  • SEO 优化:确保路由配置支持 SEO

通过有效的路由管理,可以实现子应用间的无缝切换和协同工作。

标签:Garfish