直接跳到内容

导航概览

介绍

导航模块负责统一管理路由注册、页面跳转、参数传递与结果回传。业务层只需要维护页面入口与参数类型,不直接操作全局导航栈。

核心文件与职责

导航核心能力集中在 core/navigation/src/main/ets/ 下:

  • NavigationParam.ets:公共导航参数(例如通用 id)。
  • NavigationResult.ets:公共返回结果(例如是否需要刷新)。
  • NavigationService.ets:全局导航服务(跳转、取参、返回)。
  • RouteBuild.ets:路由构建器,提供注册与获取能力。
  • RouteGraph.ets:路由图接口,模块必须实现并注册。
  • RouteInterceptor.ts:登录拦截与受保护路由配置。

模块级导航封装

每个业务模块在 core/navigation/src/main/ets/<module>/ 下维护自己的导航封装,包含四类文件:

  • *Navigator.ets:封装该模块的跳转方法,避免在 ViewModel 中重复写导航。
  • *Param.ets:该模块的路由参数类型。
  • *Result.ets:该模块的路由返回结果类型。
  • *Routes.ts:该模块的路由 key 集合。

demo 模块为例:DemoNavigator.ets 统一封装跳转方法,DemoParam.ets 维护参数类型,DemoResult.ets 维护返回类型,DemoRoutes.ts 维护路由常量。

官方文档

小结

导航的关键点是三件事:页面入口用 *Nav 收敛、模块路由用 *Graph 统一注册、跳转只走 NavigationService 或模块级 Navigator。后续章节会按路由配置、导航流程、登录拦截与结果回传逐一展开。