导航概览
介绍
导航模块负责统一管理路由注册、页面跳转、参数传递与结果回传。业务层只需要维护页面入口与参数类型,不直接操作全局导航栈。
核心文件与职责
导航核心能力集中在 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。后续章节会按路由配置、导航流程、登录拦截与结果回传逐一展开。