HarmonyOS开发之ArkTS使用:用户登录页面应用

目录

目录

前言

关于HarmonyOS

环境准备

新建项目

设计用户登录页面

1. 布局设计

2. 编写ArkTS代码

运行和测试

结束语


前言

随着HarmonyOS(鸿蒙操作系统)的不断发展,越来越多的开发者开始投入到这个全新的生态系统中,而ArkTS(Adaptive Runtime for TypeScript)作为HarmonyOS的声明式UI编程语言,为开发者提供了高效、简洁的开发体验,尤其是对于前端开发者入手鸿蒙OS开发来说更是如鱼得水。那么本文就来介绍如何使用ArkTS,这里以创建一个简单的用户登录页面应用来做具体分享。

关于HarmonyOS

关于HarmonyOS的基本内容,HarmonyOS(鸿蒙操作系统)是华为公司推出的一种分布式操作系统,它被设计为一种全场景、全连接的操作系统,旨在实现在各种设备之间的无缝协同和共享,包括智能手机、平板电脑、智能穿戴、智能家居、车载系统等。HarmonyOS的目标是构建一个统一的、开放的、全场景的操作系统生态系统。也是我们的国光操作系统,值得推荐!

环境准备

在开始之前,请确保已经安装了DevEco Studio(华为开发者联盟提供的官方IDE)以及HarmonyOS SDK,与此同时,还需要对ArkTS的基本语法和组件有一定的熟悉和了解,这样才能更好的快速入手体验。

新建项目

接下来就是直接去做创建项目的操作,上面如果把开发环境安装完毕之后,就可以直接创建项目了,大概步骤如下所示:

  1. 打开DevEco Studio,选择“Create New Project”;
  2. 然后在项目模板中选择“Empty Feature Ability (ArkTS)”;
  3. 填写项目信息,比如项目名称、保存位置等,这里就不再过多介绍,具体以实际情况填写即可,然后点击“Finish”即可。

设计用户登录页面

创建新的项目之后,先要根据设计的登录页面来开发,这里着重分享一下用户登录页面的设计的内容。具体步骤如下所示:

1. 布局设计

在新建项目的resources/base/layout目录下创建一个新的XML布局文件,比如login_layout.xml,然后在这个文件中,可以使用ArkUI提供的组件来设计登录页面的布局,使用TextField组件来输入用户名和密码,使用Button组件来提交登录请求等设置。

2. 编写ArkTS代码

然后在对应的.ets文件中(通常是与布局文件同名的.ets文件),可以使用ArkTS来编写页面的逻辑代码。以下是一个简单的示例,具体如下所示:

# ArkTS页面源码import router from '@ohos.router'
import prompt from '@ohos.prompt'
import promptAction from '@ohos.promptAction'@Entry
@Component
struct LoginPage {@State password: string = ''@State username: string = ''@State phone: string = ''build() {Column() {Text("登录").fontSize(50).fontWeight(FontWeight.Bold).margin({bottom: 60})Row() {Text("用户名").fontSize(18).fontWeight(FontWeight.Bold)}.width("100%")Row() {Image($r("app.media.name")).width(30)TextInput({placeholder: "请输入用户名"}).width(300).onChange((val: string) => {this.username = val})}.margin({bottom: 8,top: 8}).width("100%")Divider().strokeWidth(4)Row() {Text("密码").fontSize(18).fontWeight(FontWeight.Bold).margin({bottom: 8,top: 8})}.width("100%")Row() {Image($r("app.media.password")).width(30)TextInput({placeholder: "请输入密码"}).width(300).onChange((val: string) => {this.password = val}).type(InputType.Password)}.width("100%")Divider().strokeWidth(4)Row() {Blank()Text("忘记密码?").fontSize(18).fontWeight(FontWeight.Bold)}.width("100%")Button("登录").width("90%").height(60).backgroundColor(Color.Orange).onClick(() => {if (this.username == "admin" && this.password == "admin") {router.replaceUrl({url: "page/homepage",params: {name: this.username}})}else {promptAction.showToast({message:"密码或用户名错误,请重新输入"})}}).margin({top: 30,})Row() {Button('第三方登录').width("140vp").height("80vp").fontSize(20).margin({bottom: 40,top: 60,right: 20})Button('立即注册').width("140vp").height("80vp").fontSize(20).margin({bottom: 40,top: 60,})}Image($r("app.media.logo")).width(80)}.width('100%').height('100%').justifyContent(FlexAlign.Center).alignItems(HorizontalAlign.Center).padding({left: 20,right: 20})}
}
上面的登录页面实现之后,运行之后,具体效果如下所示:

运行和测试

在DevEco Studio中点击运行按钮(或使用快捷键),将应用部署到模拟器或真机上进行测试。在登录页面中输入用户名和密码,然后点击“登录”按钮,查看控制台输出以验证代码是否按预期工作。到此为止,整个开发流程全部结束,本篇文章内容也要到此结束。

结束语

通过本文内容,介绍了如何使用ArkTS来创建一个简单的用户登录页面应用,通过设计布局、编写ArkTS代码和运行测试等步骤,你可以快速掌握ArkTS的基本用法并开发出具有交互性的HarmonyOS应用。需要说明的是本文示例代码是一个较为简单的 HarmonyOS 应用程序示例,但是涵盖了常见的 UI 布局、状态管理、事件处理和导航等内容,是一个比较全面的入门案例,你也可以在这个示例代码中做自己的修改。我觉得理解这些概念对于开发更复杂的 HarmonyOS 应用程序是很有帮助的,希望这篇文章对你有所帮助!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/9148.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

element-ui select 下拉框做成下拉加载更多

注意&#xff1a; vue 版本需要 ≥ 3.3 1、html <el-selectv-model"relation_type"placeholder"请选择合作类型"ref"select" ><el-optionv-for"item in cooperationTypeList":key"item.value":label"item.la…

车载测试系列:车载测试Bug定位与分析

车载Bug定位 1.1 模拟复现条件 能够复现bug才能对问题进行定位、解决以及验证。找到bug存在的特定的条件&#xff0c;进行重现。对于依赖外部输入的条件&#xff0c;如果条件比较复杂难以模拟可以在程序里预设直接进入对应状态。 1.2 打印Log 根据问题的现象&#xff0c;在…

Spring-依赖来源

依赖来源 1 Spring BeanDefinition&#xff08;xml,注解&#xff0c;BeanDefinitionBuilder, 还有API实现的单例对象&#xff09; 2 Spring 内建BeanDefinition 3 内建单例对象 依赖注入和依赖查找的区别 Context.refresh() 的时候会调用这个方法&#xff1a;prepareBeanF…

爬虫跟代理ip有什么不同

爬虫与代理IP的区别主要体现在它们的定义、功能和使用场景上。以下是对这两者的详细比较&#xff1a; 定义 爬虫&#xff1a; 爬虫是一种自动抓取互联网信息的脚本或者程序。它可以按照一定的规则&#xff0c;自动化地浏览网络中的信息&#xff0c;并将这些信息抓取下来&#x…

深入解析C#中的接口设计原则

深入解析C#中的接口设计原则 目录 深入解析C#中的接口设计原则 一、接口设计的SOLID原则 二、接口设计的最佳实践 三、接口设计的高级技术 四、结论 接口在面向对象编程中扮演着至关重要的角色。它们是定义行为契约的一种方式&#xff0c;允许实现者提供这些行为的具体实现…

扩展学习|结合故事的力量和数字的力量:混合方法研究和混合研究综述

文献来源&#xff1a;Pluye, Pierre, and Quan Nha Hong. "Combining the power of stories and the power of numbers: mixed methods research and mixed studies reviews." Annual review of public health 35 (2014): 29-45. 文献获取&#xff1a;链接&#xff1…

最靠谱线上线下相亲交友婚恋脱单渠道指南大全,单身必看!

刚好在30岁的年纪把自己嫁出去啦。以下这些都是我经历过的相亲途径&#xff0c;分享出来&#xff0c;希望能帮到大家 一.线上小程序/App 1.单身狗解救平台&#xff08;高质量人多&#xff0c;工作学历实名认证&#xff0c;你可能看到眼花&#xff0c;自己得有自己辨别力&#x…

<sa8650> snapdragon-auto-hqx-4-5-6-0基线代码camera开发错误记录

<sa8650> snapdragon-auto-hqx-4-5-6-0基线代码camera开发错误记录 一、 qcxserver自启动关不掉二、 qcxserver启动后串行器(MAX96717)detect不到?三、 qcarcam_test运行后系统log提示QCarCamReserve错误四、 tuning错误导致的异常DumpCore本文主要记录CAMERA开发过程中的一…

[ 项目 ] tcmalloc简化版—高并发内存池

目录 前言 基本介绍 高并发 内存池 定长内存池 基本介绍 框架设计 具体实现 性能测试 整体框架介绍 申请内存过程 threadcache 1.基本介绍 2.具体实现 centralcache 1.基本介绍 2.具体实现 pagecache 1.基本介绍 2.具体实现 申请内存连通 释放内存过…

探索智能编程新境界:我与Baidu Comate的独特体验之旅

文章目录 一、认识Baidu Comate二、VS Code安装Baidu Comate教程三、Baidu Comate功能体验功能概览具体功能1.根据注释自动生成代码2.函数注释3.行间注释4.代码解释5.生成单元测试6.代码优化7.答疑解惑 四、交互体验五、总结 一、认识Baidu Comate ✨Baidu Comate插件是一款基…

QT---day4事件

1、思维导图 2、 头文件 #ifndef MYWIDGET_H #define MYWIDGET_H #include <QWidget> #include<QIcon> //图标类 #include<QLabel> //标签类 #include<QMovie> //动图类 #include<QLineEdit> //行编辑器类 #include<QPushButton> //按钮…

阿里云开发uniapp之uni-starter

一、为什么使用uni-starter uni-starter是集成商用项目常见功能的、云端一体应用快速开发项目模版。 一个应用有很多通用的功能&#xff0c;比如登录注册、个人中心、设置、权限管理、拦截器、banner... uni-starter将这些功能都已经集成好&#xff0c;另外&#xff0c;uni-s…

QLabel文本

1. 文本自动换行 label->setWordWrap(true); 2. 文本居中显示 要将QLabel中的文本居中显示&#xff0c;可以使用setAlignment()方法来设置文本的对齐方式为居中。以下是一个示例代码&#xff1a; #include <QApplication> #include <QLabel>int main(int arg…

MySQL慢查询优化【三】

当面对MySQL中的慢查询时&#xff0c;可以根据不同的情况采取相应的优化方案。以下是几种常见的慢SQL情况及其对应的优化方案&#xff1a; 缺少索引的情况&#xff1a; SELECT * FROM orders WHERE customer_id 1000;如果orders表中的customer_id列没有索引&#xff0c;这个…

C:STDIN_FILENO和stdin的区别

1.STDIN_FILENO定义于文件/usr/include/unistd.h #define STDIN_FILENO 0 /* Standard input. */ #define STDOUT_FILENO 1 /* Standard output. */ #define STDERR_FILENO 2 /* Standard error output. */ 作为read&#xff0c;write&#…

【算法训练 day23 二叉搜索树的最小绝对差、二叉搜索树的众数、二叉树的最近公共祖先】

目录 一、二叉搜索树的最小绝对差-LeetCode 530思路实现代码递归处理使用数组 个人问题 二、二叉搜索树的众数-LeetCode 501思路实现代码map统计计数递归过程中计数 个人问题 三.二叉树的最近公共祖先-LeeCode 236思路实现代码个人问题总结 一、二叉搜索树的最小绝对差-LeetCod…

【退役之重学Java】如何处理消息丢失问题

即如何保证消息的可靠性传输 一、场景 网络丢包&#xff0c;导致丢失消息RabbitMQ 没来得及保存消息&#xff0c;就挂掉了消费者接受到消息&#xff0c;但没处理完&#xff0c;消费者挂掉了 二、怎么办 生产者 将 channel 设置为 confirm 模式&#xff0c;是异步模式&#x…

Linux-笔记 Makefile简单入门

1、Makefile Makefile是一种文本文件&#xff0c;通常用于定义项目的编译规则和依赖关系。它通常与GNU Make工具一起使用&#xff0c;用于自动化软件项目的构建过程。Makefile中包含了一系列规则&#xff0c;每个规则定义了如何生成一个或多个目标文件以及生成这些目标文件所需…

Baidu Comate智能编码助手

Baidu Comate智能编码助手 &#x1f388;1.Baidu Comate的简介&#x1f388;2.安装Baidu Comate&#x1f388;3.Baidu Comate实现功能&#x1f388;4.使用注释进行智能代码提示&#x1f388;5.结束语 &#x1f388;1.Baidu Comate的简介 根据官网的介绍&#xff0c;我们了解到B…

作为一名软件开发,您是否认同“如果代码有效,就不要修复它”这一理论?

请大家关注我的公众号&#xff0c;“老胡聊Java” 这句话非常有道理&#xff0c;因为这句话不仅包含了技术&#xff0c;而且还包含了人情世故。 1 一个项目的代码动辄几千几万行&#xff0c;而且分布的位置也不同&#xff0c;比如有java代码python代码&#xff0c;甚至还可能有…