news 2026/7/2 20:26:34

【鸿蒙ArkTS】极简登录注册页面+页面跳转+密码校验

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【鸿蒙ArkTS】极简登录注册页面+页面跳转+密码校验

一、项目简介

本期基于HarmonyOS ArkTS实现最常用的登录页 + 注册页功能:

  • 登录、注册双页面路由跳转
  • 注册页密码一致性校验、非空校验
  • 输入框双向数据绑定
  • 错误弹窗提示(注册失败)
  • 登录成功跳转首页
  • 完整 UI 布局(头像、输入框、按钮、文字跳转)

适合鸿蒙初学者练手,页面干净、代码注释详细、可直接运行。

二、实现效果

  • 注册页:输入账号、密码、确认密码,空值 / 密码不一致弹出提示
  • 注册成功自动跳转到登录页
  • 登录页可跳转注册页,登录按钮跳转首页
  • 所有输入框双向绑定,数据实时获取

三、核心知识点

  • @State 状态变量:存储账号、密码数据
  • TextInput 双向绑定:$ 语法实现双向数据绑定
  • router 页面路由:页面之间互相跳转
  • AlertDialog 弹窗提示:表单校验失败提示
  • Column/Row 弹性布局:实现登录注册标准 UI

四、项目页面配置 pages.json

项目根目录 pages.json,src 数组中写入所有页面路径,系统自动识别页面,跳转直接填路径字符串即可:

{ "src": [ "pages/RouterLogin", "pages/RouterRegister", "pages/HomePage" ] }

五、完整项目源码

1. 注册页面 RouterRegister.ets

typescript import router from '@ohos.router'; import AlertDialog from '@ohos.promptAction'; @Entry @Component struct RouterRegister{ // 定义状态变量 @State username:string = "" @State password:string = "" @State password2:string = "" build() { Column({space:25}){ // 顶部头像 Image($r('app.media.banner1')) .width(120) .height(120) .borderRadius(60) Text("注 册") .fontSize(32) .fontWeight(FontWeight.Bolder) // 账号输入 Row(){ Text("账号") .fontSize(26) .width('40%') .textAlign(TextAlign.Center) TextInput({text: $username}) .width('60%') .height(50) } // 密码输入 Row(){ Text("密码") .fontSize(26) .width('40%') .textAlign(TextAlign.Center) TextInput({text: $password}) .width('60%') .height(50) .type(InputType.Password) } // 确认密码 Row(){ Text("确认密码") .fontSize(26) .width('40%') .textAlign(TextAlign.Center) TextInput({text: $password2}) .width('60%') .height(50) .type(InputType.Password) } // 跳转登录 Text("已有账号,立即登录") .fontSize(22) .fontColor(0xababab) .onClick(()=>{ router.pushUrl({ url:"pages/RouterLogin" }) }) // 注册按钮 & 表单校验 Button("立即注册") .width('100%') .height(50) .fontSize(24) .onClick(()=>{ // 非空判断 + 密码一致判断 if (this.username !== "" && this.password !== "" && this.password2 !== "" && this.password === this.password2){ // 注册成功跳转登录页 router.pushUrl({ url:"pages/RouterLogin" }) } else { // 注册失败弹窗 AlertDialog.show({ title:"注册失败", message:"账号密码不能为空,且两次密码必须一致!" }) } }) } .width('100%') .height('100%') .padding(15) } }

2. 登录页面 RouterLogin.ets

typescript import router from '@ohos.router'; @Entry @Component struct RouterLogin{ // 双向绑定账号密码 @State account:string = "" @State pwd:string = "" build() { Column({space:25}){ Image($r('app.media.banner0')) .width(120) .height(120) .borderRadius(60) Text("登 录") .fontSize(32) .fontWeight(FontWeight.Bold) Row({space:15}){ Text("账 号") .fontSize(26) TextInput({text: $account}) .width("70%") .height(50) } Row({space:15}){ Text("密 码") .fontSize(26) TextInput({text: $pwd}) .width("70%") .height(50) .type(InputType.Password) } // 跳转注册页 Text("没有账号,立即注册") .fontSize(22) .fontColor(0xababab) .onClick(()=>{ router.pushUrl({ url:"pages/RouterRegister" }) }) // 登录跳转首页 Button("立 即 登 录") .width('100%') .height(50) .fontSize(24) .onClick(()=>{ router.pushUrl({ url:"pages/HomePage" }) }) } .width('100%') .height('100%') .padding(15) } }

3. 首页 HomePage.ets(接收路由传递参数并渲染)

import router from '@ohos.router'; @Entry @Component struct HomePage{ // 接收传递过来的用户名 @State username:string = "" // 页面每次显示时触发,获取路由传参 onPageShow(): void { // 获取跳转携带的参数 const params = router.getParams() as Record<string,string> if (params){ this.username = params.username } } build() { Column() { Text(`你好 ${this.username}`) .fontSize(30) .margin({top:100}) } .width('100%') .height('100%') } }

七、总结

本篇实现了鸿蒙基础的登录注册完整业务流程,涵盖 ArkTS 最核心的:状态管理、双向绑定、路由跳转、表单校验、弹窗提示。代码简洁易懂,非常适合鸿蒙零基础入门学习,可直接用于课程作业、实训项目、毕业设计基础模板。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/2 20:26:12

鸿蒙 ArkTS 最全完整版知识点总结

一、鸿蒙基础概述HarmonyOS 定义 华为自研全场景分布式微内核操作系统&#xff0c;面向手机、平板、手表、车机、智能家居等多终端设备&#xff0c;实现万物互联、多端协同。鸿蒙三大核心特点分布式架构&#xff1a;设备能力互通、资源共享、任务流转一次开发&#xff0c;多端部…

作者头像 李华
网站建设 2026/7/2 20:25:56

工艺节点演进全解读:从180nm到3nm,芯片是怎么越做越小的

一、背景&#xff1a;"纳米"到底是什么意思&#xff1f;很多人以为XX纳米就是晶体管的栅极宽度。事实没这么简单——28nm以下&#xff0c;"节点"已经变成了一个营销术语&#xff0c;不代表实际尺寸。180nm ~ 65nm&#xff1a;节点数字≈栅极最小线宽&#…

作者头像 李华
网站建设 2026/7/2 20:23:32

【银河麒麟】管理cgroup内存资源的两个工具用法

【概述】Cgroup 的全称是 Control Groups&#xff08;控制组&#xff09;。它是 Linux 内核提供的一种强大机制&#xff0c;用于限制、记录和隔离进程组&#xff08;包括进程和线程&#xff09;对系统资源&#xff08;如CPU、内存、磁盘I/O、网络带宽等&#xff09;的使用。在银…

作者头像 李华
网站建设 2026/7/2 20:21:36

CUPP 通用用户密码分析器:助力合法渗透测试与犯罪调查

【导语&#xff1a;在身份验证中&#xff0c;密码强度至关重要&#xff0c;弱密码易被破解。CUPP 通用用户密码分析器应运而生&#xff0c;可用于合法的渗透测试或法医犯罪调查等场景&#xff0c;下面为你详细介绍其功能与特点。】CUPP 诞生&#xff1a;应对弱密码难题最常见的…

作者头像 李华
网站建设 2026/7/2 20:21:30

ArkTS 入门实战:构建一个交互式信息展示页面

一、代码核心功能概览这段代码实现了以下功能&#xff1a; 信息输入&#xff1a;用户可以在文本框中输入任意内容。状态切换&#xff1a;通过一个按钮来切换布尔状态&#xff08;开 / 关&#xff09;。模式切换&#xff1a;通过一个开关组件来切换 “夜览模式”&#xff0c;改变…

作者头像 李华
网站建设 2026/7/2 20:17:49

降重后论文逻辑全乱,有哪些真正值得拥有的的降AIGC平台推荐?

毕业论文降AIGC&#xff0c;核心在语义重构 学术润色 去AI痕迹&#xff0c;免费与付费工具结合更高效。下面按中文、英文、免费/付费分类推荐&#xff0c;附实测效果与适用场景。 一、中文论文降重工具&#xff08;最常用&#xff09; 1. 千笔AI&#xff08;综合全能首选&…

作者头像 李华