鸿蒙 ArkTS 实战:登录 + 注册 + 主页页面跳转完整教程第一步:配置页面路由(main_pages.json)打开 entry/src/main/resources/base/profil
- 登录页 ↔ 注册页:文字按钮互相跳转
- 登录页 → 首页:账号密码正确弹窗提示后跳转
- 首页 → 登录页:退出登录清空页面栈返回登录
- 统一 UI:输入框圆角、蓝色按钮、弹窗提示、表单非空校验
第一步:配置页面路由(main_pages.json)
步骤 1:配置路由文件 main_pages.json(必须先做)
文件路径:entry/src/main/resources/base/profile/main_pages.json 所有页面必须在此注册,否则跳转报错找不到页面
打开 entry/src/main/resources/base/profile/main_pages.json,在 src 数组中添加三个页面路径,代码如下:

配置说明
- 数组第一个为应用默认启动页面(登录页)
- 路径与页面文件名完全一致,区分大小写,不带
.ets后缀
步骤 2:登录页面 Login.ets(沿用你文档的 UI 样式 + 新增跳转注册)
引入路由router、弹窗AlertDialog,保留原有输入框、清除按钮,新增去注册文字跳转按钮,登录成功弹窗后跳转首页
第二步:编写登录页面
完整代码:


登录页界面预览
-origin_id="
关键新增逻辑说明
- 导入
router实现页面跳转 - 登录弹窗增加确认按钮回调,点击后跳转首页
- 底部蓝色文字按钮:
router.pushUrl跳注册页,保留返回栈
步骤 3:注册页面 Register.ets(同 UI 风格,注册成功返回登录)
新建文件 pages/Register.ets,复用登录页输入框样式,增加确认密码,注册成功弹窗跳转回登录页
第三步:编写注册页面
完整代码:


注册页跳转逻辑
- 底部文字:
router.back()返回登录页(销毁当前注册页面) - 注册成功弹窗点击「去登录」:pushUrl 重新打开登录页
第四步:编写接收参数的主页
完整代码:

预览器预览



点击“新用户注册”跳转“用户注册”页面,完成注册点击跳转“登录”页面,然后就可以登录账号跳转进去
步骤 4:登录首页 Home.ets(退出登录返回登录页)
新建文件 pages/Home.ets,登录成功进入,提供退出登录功能,使用replaceUrl清空页面栈,无法返回首页
ps:
- 页面跳转 API

url:必须填写在 main_pages.json 里注册过的页面路径params:页面之间传递数据的对象
2. 接收路由参数
在onPageShow生命周期中执行,每次打开页面都会获取参数:
const params = router.getParams() as Record<string,string>
3. 双向绑定
@State装饰器定义变量,配合TextInput的text和onChange完成双向数据绑定。
4. 弹窗 AlertDialog
使用前必须在文件顶部导入模块:

步骤 5:完整三方跳转流程梳理
- 登录页 → 注册页 点击底部蓝色文字「没有账号?前往注册」→
router.pushUrl("pages/Register") - 注册页 → 登录页 两种方式
- 点击「已有账号?返回登录」:
router.back()直接返回栈内登录页 - 注册成功弹窗点击「去登录」:
router.pushUrl("pages/Login")新开登录页
- 点击「已有账号?返回登录」:
- 登录页 → 首页 输入账号
root、密码root,登录弹窗点击「进入首页」跳转 - 首页 → 登录页 点击退出登录,弹窗确认后
router.replaceUrl跳转登录,销毁首页
常见报错解决
1、点击按钮无法跳转页面
- 检查 main_pages.json 是否注册当前页面
- 检查 url 路径和文件名大小写、横杠完全一致
- 确认代码写在
.onClick()里面,不能直接写在 Column
- router 未定义 在页面第一行添加路由导入:
import router from '@ohos.router';
- 弹窗 AlertDialog 报错 缺少对应模块导入,补充:
import AlertDialog from '@ohos.alertDialog';
4、Only UI component syntax can be written here 路由代码写在了按钮外面,必须包裹在onClick(()=>{})回调函数内部。
更多推荐




所有评论(0)