Skip to content

ArkTS

HarmonyOS的开发语言,继承了TypeScript的功能,增加了声明式UI和状态管理功能

开发平台:DevEco Studio,create project开启项目

简单示例

Index.ets:(此外,TS、JS的功能都支持,例如List、Foreach)

import Prompt from '@system.prompt'
@Component  //创建子组件myPage,内含希望复用的功能
struct myPage{
  @Prop P_msg: string   //@Prop接收参数
  @Link L_msg_s: string   //@Link 双向同步
  build() {
    Text('Hello ArkTS:'+ this.P_msg+ this.L_msg_s)
      .width(100)
      .backgroundColor(Color.Red)
      .fontWeight(FontWeight.Lighter)
      .textAlign(TextAlign.Center)
  }
}


@Entry      //将组件设置为UI页面入口
@Component  //创建自定义组件myIndex
struct Index { //组件功能
  @State L_msg: string = '2023-01-01' //状态变量,在视图中可自动更新
  build() {    //UI视图设置
    Column(){
      Text('Hello ArkTS'+ this.L_msg)
      this.ButtonA()   // 应用Builder内功能
      myPage({P_msg: 'msg to myPage', L_msg_s: $L_msg})  // 应用另一个组件,冒号:左侧为myPage组件的参数,右侧为当前组件的参数/值
    }

  }
  @Builder ButtonA(){  // 将部分功能抽离为函数,方便维护
    Button('Press')
      .onClick((event: ClickEvent)=>{
        console.log('Message',event.x)  // 输出调试数据
        Prompt.showDialog({message: '弹出交互信息'})
      })
  }

}

项目右侧'Previewer'栏目可以查看当前视图(可能需要等待一会儿才出现)

模拟器运行应用

记得先至Device Manager设置、下载模拟模拟器SDK:

参考

Docs: https://developer.harmonyos.com/

设置DevECO的时候有个问题。。文件夹名字不支持空格: