HarmonyOS 鸿蒙Next页面跳转该使用什么路由方案?(Router还是Navigation)

HarmonyOS 鸿蒙Next页面跳转该使用什么路由方案?(Router还是Navigation)

项目架构:单Alibity+单HAP+多HAR

页面布局:HAP里有Splash页面,登录页面在HAR1,主页(有tab)页面在HAR2,其它各个模块的页面分布在HAR3…HARN

使用场景:HAR1_A 页面可以跳转HAR2_A,HAR2_A同样也可以跳转HAR1_A  

遇到的问题:跳转模块之间的循环依赖

解决方法: 阅读了官方文档发现有两种跳转方式:Router和Navigation Router比较简单也比较好理解,Navigation比较复杂

(参照了最佳实践:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/bpta-application-navigation-design-V5?catalogVersion=V5)  

后面发现:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-navigation-navigation-V5  里面有个系统路由表的概念(API 12)之后

 查看文档发现:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-routing-V5里有个描述:

“Router适用于模块间与模块内页面切换,通过每个页面的url实现模块间解耦。模块内页面跳转时,为了实现更好的转场动效场景不建议使用该模块,推荐使用Navigation”, 而我们的每个HAR里可能存在多个页面,不同的HAR里的页面可以相互跳转,同一HAR里的页面也可以跳转,这里的指的模块是不同的HAR还是不同的@Entry页面呢?  

我的疑惑:

1. Router的使用场景是被@Entry修饰的页面之间的跳转吗?

2. Navigation的使用场景是 @Entry修饰的页面下的子页面之间的跳转吗?

3. Navigation里的系统路由和自定义路由推荐的使用场景是什么?

4. 针对我上述的页面布局推荐使用什么样的路由方案呢?

5. 推送拉起的页面默认是哪个页面?可以指定吗?

6. Router可以使用动态路由的方式进行模块间的解耦吗?

7. 目前的页面设计参照的Android的Activity,相当于每个Acitivity==Page(@Entry),推荐用什么样的路由方式进行跳转呢?


更多关于HarmonyOS 鸿蒙Next页面跳转该使用什么路由方案?(Router还是Navigation)的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

1、Router跳转需要[@Entry](/user/Entry)修饰页面

2、Navigation的子页面,加不加[@Entry](/user/Entry)都可实现跳转

3、推荐使用系统路由表,系统路由表相对自定义路由表,使用更简单,只需要添加对应页面跳转配置项,即可实现页面跳转

4、推荐使用Navigation,Router不支持动画且后续不再演进

5、请参考链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/settings-application-page-V13

6、Router暂时没有动态路由的方式

7.推荐使用Navigation进行跳转,[@entry](/user/entry)的页面也是可以用Navigation跳转的。

更多关于HarmonyOS 鸿蒙Next页面跳转该使用什么路由方案?(Router还是Navigation)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,进行页面跳转时,推荐使用的路由方案主要取决于应用的具体需求和架构。

  1. Router方案:适用于模块化、组件化架构较为复杂的应用。Router方案提供了灵活的页面跳转机制,支持全局路由管理,方便进行跨模块、跨组件的页面跳转。通过定义路由表和规则,可以实现松耦合的页面导航,增强应用的扩展性和可维护性。

  2. Navigation方案:适用于页面结构相对简单、导航逻辑较为直接的应用。Navigation方案通常提供了一套简洁的API,用于在同一模块或组件内进行页面跳转。其优点在于使用简单、直观,但可能不如Router方案灵活。

在HarmonyOS鸿蒙系统中,选择Router还是Navigation方案,需要根据应用的具体需求、页面结构和导航逻辑来决定。如果应用较为复杂,需要支持跨模块、跨组件的页面跳转,建议使用Router方案;如果应用结构相对简单,导航逻辑清晰,则可以选择Navigation方案。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部