鸿蒙小助手 2026-02-10 16:24:45 发布本问答帖原创发布在华为开发者联盟社区 ,欢迎开发者前往论坛提问交流。
问题描述:
在HarmonyOS中,如何实现模块间与模块内页面的跳转?Router和Navigation的使用场景是什么?
解决方案:
HarmonyOS提供了两种路由方式,Router和Navigation。Router后续不再继续演进,推荐使用Navigation作为应用的路由方案。两种方案对比如下:
易用性层面:
1.Navigation天然具备标题、内容、回退按钮的功能联动,开发者可以直接使用此能力。Router若要实现此能力,需要自行定义;
2.Navigation的页面是由组件构成,易于实现共享元素的转场。
功能层面:
1.Navigation天然支持一多,Router不支持;
2.Navigation没有路由数量限制,Router限制32个;
3.Navigation可以获取到路由栈NavPathStack,并对路由栈进行操作;
4.Navigation可以嵌套在模态对话框中,也就是说可以模态框中定义路由,Router不支持;
5.Navigation的组件全量由开发者自行控制,开发者可以自定义复杂的动效和属性的设置(背景、模糊等),Router的page对象不对外暴露,开发者无法对page进行处理。
性能层面:
1.Navigation传递参数性能更优,Navigation通过引用传递,Router通过深拷贝完成;
2.Navigation可以配合动态加载,实现组件动态加载,Router页面使用@Entry进行修饰,当前模块加载时会生成全量页面。
详细解决方案以及相关讨论,请点击原帖查看:
#HarmonyOS最强问答官# HarmonyOS中的路由跳转有哪些方式?-华为开发者问答 | 华为开发者联盟 (huawei.com)
相关推荐
鸿蒙小助手
1891
0
鸿蒙小助手
3504
0
鸿蒙小助手
7847
0
鸿蒙小助手
7676
0
鸿蒙小助手
8018
0
鸿蒙小助手
致力于为鸿蒙开发者谋福利
帖子
提问
粉丝
【划重点】HarmonyOS 应用市场审核 3.5 驳回“十大高频问题”全解析
2026-02-13 21:44:15 发布ArkUI框架运行原理与常见性能优化方案
2026-02-12 19:40:38 发布