HarmonyOS中的路由跳转该怎么设计?Router和Navigation应该使用哪个呢?
头像 鸿蒙小助手 2026-02-10 16:24:45    发布
6895 浏览 99 点赞 2 收藏

本问答帖原创发布在华为开发者联盟社区 ,欢迎开发者前往论坛提问交流。

问题描述:

在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)

©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
HarmonyOS
头像

鸿蒙小助手

致力于为鸿蒙开发者谋福利

1009

帖子

7

提问

13565

粉丝

关注
热门推荐
地址:北京市朝阳区北三环东路三元桥曙光西里甲1号第三置业A座1508室 商务内容合作QQ:2291221 电话:13391790444或(010)62178877
版权所有:电脑商情信息服务集团 北京赢邦策略咨询有限责任公司
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,我司致力于保护作者版权,如有侵权,请与我司联系删除
京ICP备:2022009079号-2
京公网安备:11010502051901号
ICP证:京B2-20230255