HarmonyOS 鸿蒙Next中的路由跳转有哪些方式?
HarmonyOS 鸿蒙Next中的路由跳转有哪些方式?
页面跳转参考Navigation路由相关的操作:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-navigation-navigation-V5#路由操作
Navigation与Router对比:
易用性层面:
Navigation天然具备标题、内容、回退按钮的功能联动,开发者可以直接使用此能力。Router若要实现此能力,需要自行定义;
Navigation的页面是由组件构成,易于实现共享元素的转场。
功能层面:
Navigation天然支持一多,Router不支持;
Navigation没有路由数量限制,Router限制32个;
Navigation可以获取到路由栈NavPathStack,并对路由栈进行操作;
Navigation可以嵌套在模态对话框中,也就是说可以模态框中定义路由,Router不支持;
Navigation的组件全量由开发者自行控制,开发者可以自定义复杂的动效和属性的设置(背景、模糊等),Router的page对象不对外暴露,开发者无法对page进行处理。
性能层面
Navigation传递参数性能更优,Navigation通过引用传递,Router通过深拷贝完成;
Navigation可以配合动态加载,实现组件动态加载,Router页面使用[@Entry](/user/Entry)进行修饰,当前模块加载时会生成全量页面。
应用架构可以参考链接:https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-app-architecture-overview-V5
一般建议用Navigation,Router切换Navigation参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-router-to-navigation-V5
HarmonyOS 鸿蒙Next中的路由跳转主要有两种方式:Router导航和Navigation导航。
Router导航提供了pushUrl
和replaceUrl
两种方法。pushUrl
用于跳转到指定页面,目标页不会替换当前页,而是压入页面栈,可以保留当前页的状态;replaceUrl
则用于替换当前页面,并销毁被替换的页面。这两种方法都支持携带参数进行跳转。
然而,鸿蒙系统目前主推的是Navigation导航,因为其功能更加强大和完善。使用Navigation组件时,需要设置导航页面列表和页面栈信息,在点击事件中调用pushPath
或相关方法进行跳转。对于跨模块跳转,建议使用pushNamedRoute
方法,并通过导入目标页面模块来确保路由名称正确。
请注意,在进行路由跳转时,需要确保路由配置正确,包括目标页面的URL或路由名称,以及HAP和HSP包的配置。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。