鸿蒙的路由模式有几种?
鸿蒙(HarmonyOS)的路由模式,主要可以从两个层面来理解:一是宏观的两大路由框架;二是框架内部的多种工作模式。我将从这两个层面为你详细拆解。
📌 两大路由框架:Navigation vs. Router
从宏观上看,HarmonyOS 提供了 Navigation 和 Router 这两种主要的页面路由实现方案。
官方现已明确推荐使用 Navigation,它是未来的演进方向,而 Router 是传统方案,后续将不再演进。
Navigation 框架本身具备多种灵活的显示模式,我们将在下面详细展开。Router 方案则在跳转逻辑和实例管理上定义了不同的工作模式。
⚙️ Router 模式内部详解
如果你接触的是较早的 Router 方案,其“模式”主要体现在这两个方面:
- 页面跳转模式 (Transition Modes):控制新页面与当前页面的关系。router.pushUrl():新页面会压入页面栈,保留当前页面状态,用户可以返回。router.replaceUrl():新页面会替换当前页面并销毁它,用户无法返回。
- 页面实例模式 (Instance Modes):控制相同URL页面在栈中是否允许多个实例。Standard (多实例模式,默认):每次跳转都创建新实例,栈中允许有多个相同URL的页面。Single (单实例模式):如果栈中已有相同URL的页面,会将其移至栈顶并复用,不会创建新实例。
请注意:Router 页面栈有32个页面的上限,超限会引发问题。
🧭 Navigation 三大显示模式
作为未来的主流方案,Navigation 组件提供了更智能、更符合“一次开发,多端部署”理念的显示模式:
- 自适应模式 (Adaptive)它就像你的App布局指挥官,会根据屏幕宽度自动在“单栏”和“分栏”模式间切换,是开发复杂或需适配多设备应用的首选。
- 单栏模式 (Single / Stack)在手机等竖屏设备上,此模式下内容页会覆盖导航页,用户需要通过返回键或手势回到上一级。
- 分栏模式 (Split)在平板或横屏设备上,此模式实现了经典的“导航栏+内容区”界面,常用在设备类App上,提升了浏览效率。
💎 总结与选型建议
在实际开发中,可以这样选择:
- 新建项目:首选 Navigation 框架,利用它的显示模式为不同设备设计界面。
- 简单应用:页面少且无复杂交互的极简项目,可暂用 Router,但务必注意其32页面的限制。
- 旧项目迁移:如果项目已大量使用 Router,建议为新功能开发使用 Navigation,再逐步替换旧模块。