HarmonyOS 开发:ArkTS 语言底子入门

打印 上一主题 下一主题

主题 812|帖子 812|积分 2436

基本概述:



  • 在鸿蒙开发早期使用JavaScript 配合Fage 模型,而如今更为保举ArkTS 语言 + Stage 模型,这跟Android 开发很相近。早期Android 使用Java 语言配合第三方框架,现Kotlin + JetPack 框架逐渐占据主流职位。ArkTS 语言底子是我们走进HarmonyOS 开发的第一课显。
  • 文章以ArkTS 语言为主题,通过笔墨 + Demo 的形式,简略先容了鸿蒙开发前期所需的ArkTS 语言底子。
  • ArkTS 是在TypeScript 的底子上加上鸿蒙特性,而TypeScript 又是在JavaScript 的底子上演变而来的。因此,TypeScript 和JavaScript 也是需要了解的
ArkTS 语言初探

语言发展汗青



  • .ets 是继续自 TypeScript 而来的

  • ArkTS 特性:树布局、声明式UI、组件化、状态管理

    • ArkTS = 鸿蒙特性 + TypeScript
    • 鸿蒙代码与Flutter、Compose、Swift、React 拥有极大相似性,均为声明式UI + 特定语言

基本语法



  • 示意图:


  • 基本概念:

    • 装饰器: 用于装饰类、布局、方法以及变量,并赋予其特殊的含义。如上述示例中@Entry、@Component和@State都是装饰器,@Component表示自定义组件,@Entry表示该自定义组件为入口组件,@State表示组件中的状态变量,状态变量变革会触发UI革新。
    • UI描述:以声明式的方式来描述UI的布局,例如build() 中的代码块。
    • 自定义组件:可复用的UI单位,可组合其他组件,如上述被@Component装饰的 struct Hello。
    • 系统组件:ArkUI框架中默认内置的底子和容器组件,可直接被开发者调用,比如示例中的Column、Text、Divider、Button。
    • 属性方法:组件可以通过链式调用设置多项属性,如fontSize()、width()、height()、backgroundColor()等。
    • 事故方法:组件可以通过链式调用设置多个事故的响应逻辑,如跟随在Button背面的onClick()。
    • 系统组件、属性方法、事故方法具体使用可参考基于ArkTS的声明式开发范式。

数字范例



  • 若定义在布局体外,其前需加 let 关键字
    1. let number1 : number = 99
    2. //默认情况下是十进制的
    3. let number2 : number = 0b10111 //二进制
    4. let number3 : number = 0o123456780 //八进制
    5. let number3 : number = 0x1234567890ABCDEF //十六进制
    复制代码
  • 在布局体内部就不要 let
    1. number1 : number = 99
    复制代码
字符串范例



  • 字符串声明:单双引号相同

    1. let string1 : String = "WAsbry"
    2. let string2 : String = 'WAsbry'
    复制代码
  • 字符串拼接:
    1. let string : string = `你的名字是:${string1}` //方法一:推荐
    2. let string2 : String = 'WAsbry'
    3. let string : string = 'string2 = ' + string2//也可使用 + 进行拼接
    复制代码
联合范例



  • 多种范例组装在一起,变量最后的范例取决于最后一次赋值操作
    1. let objectType : string | number | boolean
    2. objectType = true //此时objectType 为boolean 类型
    3. objectType = "WAsbry" //此时objectType 为string 类型
    4. objectType = 999 //此时objectType 为number 类型
    复制代码
数组范例



  • 两种声明方式:数组下标从0开始
    1. let strings1 : Array<string> = ['AAA','BBB','CCC'] //常用
    2. let strings2 : string[] = ['AAA','BBB','CCC']
    复制代码
罗列范例



  • 代码展示
    1. enum Color {Red,Green,Blue}
    2. let color : Color = Color.red
    复制代码
元祖范例



  • 类似 Java 中的 Map 键值对
    1. let name1 : [string,number]; //声明
    2. name1 = ["WAsbry",23];//赋值
    复制代码
未知范例



  • unknown:相当于Java 的 Object,或者是 Kotlin 中的 Any 范例
    1. let testType : unknown = 6; //声明
    2. testType = "WAsbry" //二次赋值,现为字符串类型
    3. testType = false //再次赋值,现为boolean 类型
    复制代码
增补范例



  • 必须在声明时就好定好,用的时候,也只能传这个
    1. //null 类型,用途较少
    2. let str1 : null = null;//声明
    3. str1 = null;//使用
    4. //null 类型,用途较少
    5. let str2 : Undefined = undefind
    复制代码
函数范例



  • 函数声明:此处有点问题
    1. /*
    2. 函数名:setName
    3. 函数参数:name
    4. 返回值类型:void
    5. */
    6. function setName(name) : void{
    7.    
    8. }
    复制代码
this 关键字



  • 作用:访问布局体内定义的变量
  • 举例:布局体表里定义了同名同范例但差别值的变量

    • 加 this :获取布局体内
    • 不加:获取布局体外

  • 代码:

    1. let postion : string = "outside"
    2. @Entry
    3. @Component
    4. struct Index {
    5.   postion : string = "inside"//若访问该变量,需使用this
    6.   build() {
    7.     Row() {
    8.       Column() {
    9.         Text(this.postion)//指代inside 字符串
    10.           .fontSize(50)
    11.           .fontWeight(FontWeight.Bold)
    12.         Text(postion)//指代outside 字符串
    13.           .fontSize(50)
    14.           .fontWeight(FontWeight.Bold)
    15.       }
    16.       .width('100%')
    17.     }
    18.     .height('100%')
    19.   }
    20. }
    复制代码
  • 结果:

综合使用



  • 考察点:

    • 字符串、罗列范例、联合变量的定义及使用
    • this 关键字指向问题

  • 结果展示:


  1. let postion : string = "outside"
  2. enum Color{Rad = 'red',green = 'green'};//定义枚举类型变量
  3. let color = Color.green
  4. let flag : number | string | boolean //此为联合类型变量
  5. flag = 123
  6. flag = "false"
  7. flag = false//联合类型遍历的最后一次赋值,决定其实际变量类型
  8. @Entry
  9. @Component
  10. struct Index {
  11.  postion : string = "inside"//定义在结构体内的变量:访问时需借助this
  12.  build() {
  13.    Row() {
  14.      Column() {
  15.        Text("准备判断")
  16.        Divider()
  17.        if (flag){
  18.          Text("inside").fontColor(color)
  19.        }else {
  20.          Text(postion).fontColor(Color.Rad)
  21.        }
  22.      }.width('100%')
  23.    }.height('100%')
  24.   }
  25. }
复制代码

最后


有很多小同伴不知道学习哪些鸿蒙开发技能?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。 
鸿蒙HarmonyOS Next全套学习资料←点击领取!(安全链接,放心点击
这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技能、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技能知识点。
希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小同伴自行领取,限时开源,先到先得~无套路领取!!
鸿蒙(HarmonyOS NEXT)最新学习路线

有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门讲授视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。
获取以上完备版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料
HarmonyOS Next 最新全套视频教程

《鸿蒙 (OpenHarmony)开发底子到实战手册》
OpenHarmony北向、南向开发情况搭建

《鸿蒙开发底子》


  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开发
  • .……

《鸿蒙开发进阶》


  • Stage模型入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开发
  • 通知与窗口管理
  • 多媒体技能
  • 安全技能
  • 任务管理
  • WebGL
  • 国际化开发
  • 应用测试
  • DFX面向未来计划
  • 鸿蒙系统移植和裁剪定制
  • ……

《鸿蒙进阶实战》


  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……

大厂口试必问口试题

鸿蒙南向开发技能

鸿蒙APP开发必备

鸿蒙生态应用开发白皮书V2.0PDF

获取以上完备鸿蒙HarmonyOS学习资料

请点击→

总结
总的来说,华为鸿蒙不再兼容安卓,对中年步伐员来说是一个挑战,也是一个机遇。只有积极应对变革,不停学习和提拔自己,他们才能在这个变革的时代中立于不败之地。 


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

光之使者

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表