路由跳转有router和Navigation,为什么官方不推荐用router啊,我初学者用起来还挺方便的


HarmonyOS NEXT
2025-06-11 11:43:34
浏览
收藏 0
回答 2
待解决
回答 2
按赞同
/
按时间
是w的w
  1. 实现机制
  • Navigation:作为页面的根容器,主要包含主页和内容页。它通过NavPathStack实现页面路由,支持pushPath和pushPathByName两种方法进行页面跳转。
  • Router:通过不同的URL地址实现页面路由,支持pushUrl和replaceUrl两种跳转模式,并且可以传递参数。页面栈的最大容量为32个页面,超过这个限制可以调用clear()方法释放内存空间。
  1. 跳转模式
  • Navigation:提供pushPath和pushPathByName两种方法,支持pop、move、clear等多种操作,能够灵活控制页面栈的状态。
  • Router:提供pushUrl和replaceUrl两种跳转模式,决定了目标页面是否会替换当前页面。同时提供Standard和Single两种实例模式,决定目标URL是否对应多个实例。
  1. 数据传递
  • Navigation:可以通过params方法向目标页面传递参数,支持对象的传递。
  • Router:在调用跳转方法时添加params属性传递参数,目标页可以通过getParams()方法获取传递过来的参数。
  1. 导航控制
  • Navigation:支持更丰富的导航控制,如动态加载、跨包引用等。
  • Router:主要提供基本的页面跳转和返回功能,可以通过router.back()等方式返回上一页。
  1. 适用场景
  • Navigation:适用于需要统一页面跳转管理、复杂导航控制的场景。
  • Router:适用于简单的页面间跳转和数据传递的场景。
  1. 性能考量
  • Navigation:由于其丰富的导航控制,可能会占用更多的系统资源。
  • Router:提供基本的跳转功能,可能在资源占用上更为经济。
  1. 易用性
  • Navigation:学习曲线可能较陡,需要理解多种导航控制和路由转场的概念。
  • Router:相对简单直观,特别是对于熟悉Web开发中URL路由的开发者来说。
  1. 平台版本
  • Navigation:在不同API版本中有不同的实现方式,如NavPathStack在API Version 9上需要配合NavRouter使用,而在API Version 10中推荐使用NavPathStack配合NavDestination。
  • Router:提供的是较为通用的URL路由功能,在不同平台版本中变化不大。
分享
微博
QQ
微信
回复
2025-06-12 11:44:31
wx63db0a91d7d21

router使用简单,但是扩展性比较差,无法实现操作页面栈的场景

分享
微博
QQ
微信
回复
2025-06-12 16:53:47
相关问题
路由导航router还是navigation
616浏览 • 1回复 待解决
HarmonyOS Navigationrouter怎么
1262浏览 • 1回复 待解决
router 路由跳转相关问题
1532浏览 • 1回复 待解决
HarmonyOS router路由跳转问题
1790浏览 • 2回复 待解决
HarmonyOS router跳转navigation跳转
1051浏览 • 1回复 待解决
navigationrouter区别是什么
3059浏览 • 1回复 待解决
如何实现router命名路由跳转
2330浏览 • 1回复 待解决
Class Routernamespace router什么区别
2587浏览 • 1回复 待解决
HarmonyOS 关于navigationrouter问题
1113浏览 • 1回复 待解决
HarmonyOS Navigationrouter如何选择
1426浏览 • 1回复 待解决
HarmonyOS Navigationrouter使用场景
2105浏览 • 2回复 待解决
HarmonyOS 跳转方式RouterNavigator
1749浏览 • 1回复 待解决
HarmonyOS router路由管理
828浏览 • 1回复 待解决
TSJS哪个使用起来更好
3064浏览 • 2回复 已解决