一、什么是路由?

在鸿蒙应用开发中,路由(Router)的核心作用就是实现页面之间的跳转、页面栈管理、页面传参

我们日常开发的首页、登录页、注册页、详情页切换,全部依赖路由模块。

本文基于 @ohos.router 原生路由模块(课堂/初学最常用),手把手讲全所有用法、区别、传参、报错解决。

二、前置必备:路由配置(90%跳转报错的根源)

所有需要跳转的页面,必须在 main_pages.json 注册,否则跳转空白/报错。

路径:entry/src/main/resources/base/profile/main_pages.json

示例配置(对应你的项目页面):

三、路由模块导入(固定写法)

所有需要跳转的页面,第一行必须导入路由:

import router from '@ohos.router';

四、四大核心路由方法

1. router.pushUrl() 【最常用:保留上一页】

作用:打开新页面,保留当前页面,页面栈叠加,可以返回上一页。

使用场景:首页→登录、登录→注册、列表→详情

代码示例:

2. router.replaceUrl() 【替换页面:无法返回】

作用:用新页面替换当前页面,当前页面会被销毁,无法返回。

使用场景:登录成功跳首页、注册成功跳首页(防止返回登录页)

3. router.back() 【返回上一页】

作用:关闭当前页面,返回页面栈的上一级页面。

特点:如果是首页(页面栈只有一页),调用无效,不会闪退。

五、路由面传参

 目标页:接收参数

六、结合你的项目:完整实战案例

跳登录页login.ets

注册页 Login1.ets 路由逻辑

完成跳转

首页页面Login.ets

七、常见报错 & 解决方案

1. 跳转空白、无反应

✅ 原因:main_pages.json 未注册页面 / 路径大小写错误

✅ 解决:核对路径、补全路由配置,重新编译项目

2. 页面跳转后无限返回

✅ 原因:全程只用 pushUrl,页面栈堆积过多

✅ 解决:登录成功使用 replaceUrl 替换页面

3. getParams 获取不到数据

✅ 原因:在 build 中直接获取,生命周期未加载完成

✅ 解决:在 aboutToAppear 生命周期中接收参数

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐