在鸿蒙开发中navigation 和router的页面栈的异同点?

在鸿蒙开发中navigation 和router的页面栈的异同点?模块内推荐使用 navigation 进行页面导航,模块间使用 router 导航,这两者的页面压栈是否有不同?如何方便的知道页面的栈中都有哪些页面,是否被销毁?

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

阅读 560
1 个回答

现在模块内和模块间的跳转都会能用navigation实现的都尽量用navigation实现,因为后续router会停止演进,后续可能不会新增能力。模块间的跳转,用navigation导致的耦合紧密的问题,可以通过动态import来解决。
目前router不支持对页面栈进行精细操作,在清除栈方面,如A-B-B1不支持在B1页面时清除B页面,只支持使用claer清理掉当前页面以外的所有页面。router不支持跳过最大限度32.页面栈的最大容量为32个页面。
router路由栈只支持获取栈顶页面属性,仅包含当前页面路径,页面文件名。
navigation后续会继续演进,如果有能力为得到满足可以继续规划需求。
navigation中可以通过getAllPathName 获取栈中所有NavDestination页面的名称。(详细可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-refere...

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进