文章目录
1、概念
页面路由是指在应用程序中实现不同页面之间的跳转和数据传递。在 ArkTs 中,用户操作的每个页面都被存储在一个页面栈中,历史页面并没有被销毁。这样我们在返回操作时就只需要把栈顶的移除即可实现返回上一页效果。每次访问新的页面只需要创建新的页面,然后压入栈顶即可。那么问题来了,如果用户一直访问新页面,那么是不是就会一直压入栈顶,内存消耗就会递增。问题确实存在,在 HarmonyOS 中,规定了页面栈的最大容量上限为 32 个页面,超出这个上限就会报错。而使用 router.clear() 方法可以清空页面栈,达到释放内存的效果,但是要慎用,一旦清空,页面上有些功能可能会报错引发程序异常。因此,如何处理页面跳转方式,正确实现页面跳转就需要使用不同的页面路由方式+页面创建模式。
2、Router 页面跳转模式与页面实例模式
Router的两种页面跳转模式
- router.pushUrl() : 目标页面不替换当前页,而是压入页面栈,因此可以使用 router.back() 返回当前页面
- router.replaceUrl() : 目标页面替换当前页面,当前页面被销毁并释放资源ÿ