ArkTs 基于 TypeScript,而 TypeScript 基于 JavaScript ,所以Arkts有JS的一些特性,

Arkts 内部封装了 TypeScript的一些特性和方法,以及ArktsUI样式,例如Button / Text 等一些常用组件

基础布局:

@Entry是页面进入窗口

@Component是装饰器

struct index是建立一页面下面是页面的内容

@State是可更新的变量

Row / Column : 类似于Android中LinearLayout 线性布局

Row(){ //控制行,每一行的元素 例如Text的一些属性

}.width('这一行的宽度,可以写固定值,也可以写百分比')

.height('这一行的高度,可以写固定值,也可以写百分比')

.justifyContent(FlexAlign)//对齐方式: Start 左对齐,End 右对齐 Center 居中

@Entry
@Component
struct Index {
 
 
  build() {
    Row(){
      Button("点击0次")
        .backgroundColor("#0085d0")
 
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
  }
  // ArkTs <- TypeScript <- JavaScript
}

鸿蒙 Harmony ArkTs开发教程一_ArkTs


自定义变量不能与基础通用属性/事件名重复,相当于Java的保留字,例如this, private ,class 等

装饰器: 用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如上述示例中@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的声明式开发范式。 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V2/ts-components-summary-0000001478181369-V2 除此之外,ArkTS扩展了多种语法范式来使开发更加便捷:

@Builder/@BuilderParam:特殊的封装UI描述的方法,细粒度的封装和复用UI描述。 @Extend/@Styles:扩展内置组件和封装属性样式,更灵活地组合内置组件。 stateStyles:多态样式,可以依据组件的内部状态的不同,设置不同样式。

@Entry
@Component
struct Index {
 
 @State count : number = 0 //声明一个变量 number类型
 
 
  build() {
    Row(){
      Button('点击'+this.count+'次')
        .backgroundColor("#0085d0")
        .onClick(() => this.count++)
 
    }
    .width('100%')
    .margin('10')
    .justifyContent(FlexAlign.Center)
  }
  // ArkTs <- TypeScript <- JavaScript
}

conut : number = 0 //声明一个number类型的 变量 count

.onClick(() => this.count++) //点击时候 count 自加1

@state 让Arkts监控变量状态,如果改变则重新绘制

底层用方舟编译器,将代码转为字节码