HarmonyOS开发实战:小分享-ArkUI 导航与路由——router API 深入
前言路由导航是移动应用的核心能力决定了用户如何在页面间流转。小分享 App 使用ohos.router模块实现页面跳转。本篇深入讲解pushUrl、replaceUrl、back、getParams等 API。详细 API 可参考 HarmonyOS Router 官方文档。一、router 核心 API1.1 API 列表API作用返回值router.pushUrl(options)入栈跳转Promiserouter.replaceUrl(options)替换当前页Promiserouter.back(options?)出栈返回voidrouter.clear()清空路由栈voidrouter.getLength()获取栈长度numberrouter.getState()获取当前栈状态RouterStaterouter.getParams()获取页面参数Object1.2 pushUrl 入栈跳转router.pushUrl({ url: pages/TextEditPage, params: { type: text, title: 分享文字 } })1.3 replaceUrl 替换跳转router.replaceUrl({ url: pages/HomePage })1.4 back 返回router.back() // 返回上一页 router.back({ url: pages/HomePage }) // 返回到指定页面二、路由参数传递2.1 发送参数router.pushUrl({ url: pages/TemplateDetailPage, params: { templateId: ink-001, title: 水墨古风 } })2.2 接收参数aboutToAppear(): void { const params router.getParams() as Recordstring, string this.templateId params.templateId this.title params.title }三、路由栈管理3.1 路由栈特性router.getLength() // 当前栈深度 router.getState() // 当前页面状态 router.clear() // 清空栈3.2 避免栈溢出// 底部 Tab 切换用 replaceUrl router.replaceUrl({ url: pages/HomePage }) // 详情页跳转用 pushUrl router.pushUrl({ url: pages/DetailPage }) // 达到上限时清空 if (router.getLength() 30) { router.clear() router.pushUrl({ url: pages/HomePage }) }四、小分享 App 路由策略场景API原因启动页→首页replaceUrl避免返回启动页分类导航pushUrl保留返回入口编辑页→预览pushUrl预览后可返回编辑底部 Tab 切换replaceUrl避免栈膨胀返回上一页back()标准返回五、本文核心知识点5.1 路由核心要点pushUrl 入栈replaceUrl 替换back 返回params 传递页面参数getLength/getState 管理路由栈5.2 实战开发要点Tab 切换用 replaceUrl 避免栈溢出页面参数用 getParams() 接收路由栈深度超 30 时清空附录路由导航的完整实现细节1. Router 核心 API 对比API作用栈变化适用场景router.pushUrl()入栈新页入栈列表→详情router.replaceUrl()替换当前页出栈新页入栈Tab 切换router.back()返回当前页出栈返回上一页router.clear()清空全部出栈重启流程router.getLength()获取栈长度无栈检查router.getState()获取状态无调试router.getParams()获取参数无接收参数2. 完整的路由跳转示例// 入栈跳转保留返回入口 router.pushUrl({ url: pages/TextEditPage, params: { type: text } }) // 替换跳转不保留返回 router.replaceUrl({ url: pages/HomePage }) // 返回上一页 router.back() // 带参数返回 router.back({ url: pages/HomePage })3. 参数传递的完整实现// 发送方 router.pushUrl({ url: pages/TemplateDetailPage, params: { templateId: ink-001, title: 水墨古风 } }) // 接收方 aboutToAppear(): void { const params router.getParams() as Recordstring, string this.templateId params.templateId this.title params.title }4. 路由栈管理// 检查栈深度 if (router.getLength() 30) { router.clear() router.pushUrl({ url: pages/HomePage }) }5. 小分享 App 路由策略场景API原因启动页→首页replaceUrl避免返回启动页分类导航pushUrl保留返回入口Tab 切换replaceUrl避免栈膨胀返回back()标准返回6. 完整代码文件索引文件路径说明所有页面文件使用 router API7. 总结本文深入讲解了 HarmonyOS router 路由 API 的完整使用涵盖 pushUrl、replaceUrl、back、参数传递和栈管理。Builder 与 Component 对比相关资源HarmonyOS 官方文档https://developer.huawei.com/consumer/cn/doc/ArkTS 语法指南ArkTS Introduction状态管理指南State ManagementArkUI 组件参考ArkUI Components路由 APIRouter API开源鸿蒙跨平台社区https://openharmonycrossplatform.csdn.net相关资源HarmonyOS Router 官方文档Router APIHarmonyOS Navigation 组件Navigation ComponentHarmonyOS 路由栈管理Router Stack GuideHarmonyOS 页面路由Page RoutingHarmonyOS 页面生命周期Page LifecycleHarmonyOS 路由设计Routing DesignHarmonyOS 路由栈Router Stack开源鸿蒙跨平台社区https://openharmonycrossplatform.csdn.netCategoryIcon 组件封装Builder 与 Component 对比Builder 与 Component 对比如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力

相关新闻

最新新闻

日新闻

周新闻

月新闻