ArkTS快速入门

news2024/11/28 7:40:47

一、概述

        ArkTS是鸿蒙生态的应用开发语言。它在保持TypeScript(简称TS)基本语法风格的基础上,对TS的动态类型特性施加更严格的约束,引入静态类型。同时,提供了声明式UI、状态管理等相应的能力,让开发者可以以更简洁、更自然的方式开发高性能应用。

        简而言之,ArkTS是华为官方推荐的HarmonyOS开发的主力语言,它是华为自己开发的语言。由于HarmonyOS3.0之后就不再支持Java开发了,因此我们要在鸿蒙系统上开发app,就需要学习这门语言。

特点

  • 开发效率高,体验好

        ArkTS专注于移动端的开发,虽然传统的前端网页开发也同样可以实现,不过学过web前端的都知道,一个网页的实现需要同时使用HTML,JavaScript,CSS这三种不同语言,它们语法完全不同,开发体验并不良好。不过使用ArkTS开发移动端的话就没有这个问题了,仅仅这一种语言,一种语法,开发起来就比较舒服了。

比如这个,实现一个点击自增按钮,ArkTS所操作方式的完全就是 .属性(赋值)  进行操纵。这对于习惯使用Java开发的人来说可以说是非常舒服了。

  • 性能上并没有下降,执行性能非常高效

  • 而且还有多系统适配,接入能力

开发工具

DevEco Studio:HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者

注意它需要node.js环境,版本最低不能低于14.19.1,最高不能高于17.0.0。

使用NVM实现多版本Node.js的版本共存和无缝切换_nodejs多版本共存-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_56308072/article/details/130894356?spm=1001.2014.3001.5501

这样检测的时候没有报错就可以使用了,又报错直接点击后面的安装即可。


二、TypeScript基本语法

ArkTS是基于TypeScipt开发的,其语法也是十分的相似。因此我们需要先了解TypeScipt的基本语法,方便ArkTS的学习。

目录

  1. 变量声明
  2. 条件控制
  3. 循环迭代
  4. 函数
  5. 类和接口
  6. 模块开发

1、变量声明

TypeScript在JavaScript的基础上加入了静态的类型检查功能,因此与JavaScrpt那极其自由的语法不同,每一个变量都有固定的数据类型。

JS的语法:let msg = 'hello world'

TS的语法:let msg:string = 'hello world'

其实就是在JS的基础上多了一步声明数据类型。

 想要编写一下代码对语法进行练习和熟悉,可以使用TypeScript官方网站上的在线编写:TypeScript: TS Playground - An online editor for exploring TypeScript and JavaScript

直接在这里练习就行了。

2、 条件控制

TypeScript与大多数开发语言类似,支持基于if-else和switch的条件控制

===是JavaScript中的一个特殊运算符,它会严格要求两个比较的数据的数据类型,TypeScript将其继承了下来。

因为在JavaScript是一门弱类型语言,它不强调数据的类型,"字符串'21' == 整型21" 始终为true,所有有了===这个运算符比较一下数据类型。

其次还有一个需要注意的一点是

在TypeScript中,空字符串、0、null、undefined都被认为是false。

因此你可以直接将一个变量作为一个判断的标准,这点与C++很相似。

3、循环迭代

TypeScript支持for和while循环,并且为一些内置类型如Array等提供了快捷迭代的语法

 相信有编程基础的大家都快把循环语句写烂了。

4、函数

TypeScript通常利用function关键字声明函数,并且支持可选参数,默认参数,箭头函数等特殊语法

可选参数就是直接在参数后面加上 ? 默认参数就是直接在参数中赋值,注意此时如果有参数传递时就用传递来的参数,没有参数传入时默认参数才会生效 

5、类和接口

TypeScript具备面向对象编程的基本语法,例如interface,class,enum等。也具备封装、继承、多态等面向对象基本特征

吐槽:好像Java和JS杂交之后出来的产物。我们再来看一个既视感很强的例子

 

6、模块开发

应用复杂时,我们可以把通用功能抽取到单独的ts文件中,每个文件都是一个模块(module)。模块可以相互加载,提高代码复用性

 


三、ArkTS快速入门

项目创建

创建一个空项目

简单解释一下其中的配置项:

  • Project name是开发者可以自行设置的项目名称,这里根据自己选择修改为自己项目名称。
  • Bundle name是包名称,默认情况下应用ID也会使用该名称,应用发布时对应的ID需要保持一致。
  • Save location为工程保存路径,建议用户自行设置相应位置。
  • Compile SDK是编译的API版本,这里默认选择API9。
  • Model选择Stage模型,其他保持默认即可。

吐槽:怎么跟IDEA长得这么像

目录结构 

左边的目录大多是配置文件,用到的时候再讲,现在先将其切换为Ohos,IDE会自动将目录按照类型分类

  • AppScope:主要用于存放整个应用公共的信息与资源
  • entry:入口,初始模块。用于存放编写的代码文件
    • configuration:存放相应模块的配置文件
    • resource对应模块内的公共资源
    • entryability:存放ability文件,用于当前ability应用逻辑和生命周期管理。
    • pages:存放UI界面相关代码文件,初始会生成一个Index页面。
  • 最外层的configuration:则是存放工程应用级的配置文件

既然是鸿蒙移动端开发,那么就需要一个鸿蒙系统的手机。不过我们不需要真的去购买一台手机,IDE中有自带的模拟器。

点击右侧的Previewer,即可看到index.ets文件的效果(ArkTS写的文件后缀统一叫.ets) 

index.ets代码解释

逻辑清晰了之后,我们可以尝试使用官方的ArkUI直接拼接一个页面出来(这里仅展示一下,后面会具体学习ArkUI)

其页面的基本骨架就是如此

@Entry
@Component
struct Index {

  build() {

  }
}

拼接UI

@Entry
@Component
struct Index {
  build() {
    Column({space: 20}){
      Image('logo.png')
      TextInput({placeholder: '用户名'})
      TextInput({placeholder: '密码'})
        .type(InputType.Password)
        .showPasswordIcon(true)
      Button('登录')
      Row(){
        Checkbox()
        Text('记住我')
          .fontColor('#36D')
      }
    }
    .width('100%')
  }
}

 最终效果

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

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

相关文章

物联网后端个人第十四周总结

物联网方面进度 1.登陆超时是因为后端运行的端口和前端监听的接口不一样,所以后端也没有报错,将二者修改一致即可 2.登录之后会进行平台的初始化,但是初始化的时候会卡住,此时只需要将路径的IP端口后边的内容去掉即可 3.阅读并完成了jetlinks…

CLiB中文大模型能力评测榜单

1 引言 目前已囊括48个大模型,覆盖chatgpt、gpt4、谷歌bard、百度文心一言、阿里通义千问、讯飞星火、360智脑、商汤senseChat、微软new-bing、minimax、tigerbot等商用模型, 以及百川、belle、chatglm6b、ziya、guanaco、Phoenix、linly、MOSS、AquilaC…

docker安装Postgres-XL集群及踩过的N个坑

说明:本文是在一个机器内部用docker创建了三台centos,然后构建的pgxl集群 文章目录 1. 学习docker2. 创建三台centos3. 安装SSH4. 创建新用户postgres5. 关闭防火墙 关闭selinux6. 配置免密登录7. 下载并传输Postgres-XL的源码8. 配置环境变量10. 安装11…

HarmonyOS(鸿蒙操作系统)与Android系统 各自特点 架构对比 各自优势

综合对比 HarmonyOS(鸿蒙操作系统)是由华为开发的操作系统,旨在跨多种设备和平台使用。HarmonyOS的架构与谷歌开发的广泛使用的Android操作系统有显著不同。以下是两者之间的一些主要比较点: 设计理念和使用案例: Harm…

2024美赛资料 | 美赛赛题优秀论文汇总(最新最全)

写在前面 2024年美国大学生数学竞赛即将来临,在比赛的官网上也可以看出一些新的变化,例如关于生成式人工智能的使用规范等,忠哥今天就带大家来了解一下美赛的一些变化吧! 01 题目类型 首先来看一些美国大学生数学建模竞赛官网上给…

解决删除文件后 WSL2 磁盘空间不释放的问题

查看 Linux distributions 打开 PowerShell 并执行如下命令: wsl -l -v 搜索并找到 ext4.vhdx 文件 我的 ext4.vhdx 文件如下: C:\Users\xxx\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx 由于…

深度学习之注意力机制

注意力机制与外部记忆 注意力机制与记忆增强网络是相辅相成的,神经网络去从内存中或者外部记忆中选出与当前输入相关的内容时需要注意力机制,而在注意力机制的很多应用场景中,我们的外部信息也可以看作是一个外部的记忆 这是一个阅读理解任务…

CSS——sticky定位

1. 大白话解释sticky定位 粘性定位通俗来说,它就是相对定位relative和固定定位fixed的结合体,它的触发过程分为三个阶段 在最近可滚动容器没有触发滑动之前,sticky盒子的表现为相对定位relative【第一阶段】, 但当最近可滚动容…

Conda常用命令总结

使用conda或anaconda的小伙伴们都知道,图形界面时不靠谱的,而在命令行下,所有的操作就会稳定很多,且极少出现问题。因此,熟记conda的命令行就变得十分有用。但对于我这样近50岁依旧奋斗在代码第一线的大龄程序员而已&a…

ULAM公链第九十六期工作总结

迈入12月,接下来就是雪花,圣诞,新年和更好的我们!愿生活不拥挤,笑容不必刻意,愿一切美好如期而至! 2023年11月01日—2023年12月01日关于ULAM这期工作汇报,我们通过技术板块&#xff…

HarmonyOS4.0从零开始的开发教程05 应用程序入口—UIAbility的使用

HarmonyOS(三)应用程序入口—UIAbility的使用 UIAbility概述 UIAbility是一种包含用户界面的应用组件,主要用于和用户进行交互。UIAbility也是系统调度的单元,为应用提供窗口在其中绘制界面。 每一个UIAbility实例,…

灵活性与可靠性:SaaS云开发与定制开发小程序的优缺点解析

随着移动互联网的快速发展,微信小程序作为一种轻量级的应用程序,逐渐成为了企业开展业务和提升用户体验的重要工具。对于企业而言,选择通过SaaS云开发或定制开发的方式开发小程序,都是为了更好地实现业务目标。在这篇文章中&#…

算法通关村第三关—继续讨论数据问题(黄金)

继续讨论数据问题 一、数组中出现次数超过一半的数字 Leetcode 169.多数元素 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如:输入如下所示的一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数…

MIT线性代数笔记-第26讲-对称矩阵及正定性

目录 26.对称矩阵及正定性打赏 26.对称矩阵及正定性 实对称矩阵的特征值均为实数,并且一定存在一组两两正交的特征向量 这对于单位矩阵显然成立 证明特征值均为实数: ​    设一个对称矩阵 A A A,对于 A x ⃗ λ x ⃗ A \vec{x} \lambda…

【Linux】echo命令使用

​echo命令 功能是在显示器上显示一段文字,一般起到一个提示的作用。此外,也可以直接在文件中写入要写的内容。也可以用于脚本编程时显示某一个变量的值,或者直接输出指定的字符串。 ​ 著者 由布莱恩福克斯和切特拉米撰写。 语法 echo […

peertalk Usbmux 资料收集与整理

Usbmux - The iPhone Wiki Usbmux During normal operations, iTunes communicates with the iPhone using something called “usbmux” – this is a system for multiplexing several “connections” over one USB pipe. Conceptually, it provides a TCP-like system –…

PHP基础 - 输入输出

在 PHP 中,有多种方法可以用来输出内容。下面是其中的几种: 1、echo: 这是最常见的输出语句之一,可以输出一个或多个字符串。它是一个语言结构,可以省略括号。使用示例如下: <?php // 使用 echo 语句输出一个字符串 echo "Hello, world!\n";// 可以使用…

中伟视界:皮带跑偏、异物检测AI算法除了矿山行业应用,还能在钢铁、火电、港口等行业中使用吗?

随着工业化的发展&#xff0c;皮带输送机已经成为各行业中不可或缺的重要设备&#xff0c;但是在使用过程中&#xff0c;由于各种原因&#xff0c;皮带常常出现跑偏问题&#xff0c;给生产运营带来了诸多困扰。不仅仅是矿山行业&#xff0c;钢铁、火电、港口等行业也都面临着皮…

C++异常剖析

什么是异常&#xff1f; 在程序运行的过程中&#xff0c;我们不可能保证我们的程序百分百不出现异常和错误&#xff0c;那么出现异常时该怎么报错&#xff0c;让我们知道是哪个地方错误了呢? C中就提供了异常处理的机制。 一、异常处理的关键字 &#xff08;1&#…

【Vue】vue整合element

上一篇&#xff1a; vue项目的创建 https://blog.csdn.net/m0_67930426/article/details/134816155 目录 整合过程 使用&#xff1a; 整合过程 项目创建完之后&#xff0c;使用编译器打开项目 在控制器里输入如下命令 npm install element-ui 如图表示安装完毕 然后在…