赞
踩
ArkTs语言是基于Ts的扩展,是harmony的主力应用开发语言,匹配了ArkUI框架,扩展了声明式UI、状态管理等,可以实现开发跨端应用。而Ts是Js的超集,扩展了Js的语法。
类型 | 表示 | 示例 |
---|---|---|
布尔值 | boolean | let isFinished :boolean = false; |
数字类型 | number | let number :number = 20; |
字符串 | string | let name : string = 'strawberry'; let name :string = "strawberry"; |
数组 | number[] 或 Array<number> | let list1 : number[] = [1,2,3]; let list2 : Array<number> = [1,2,3]; |
元组 | 表示一个已知元素数量和类型的数组,各元素的类型不必相同 | let x = [string ,number]; |
枚举 | enum | enum Color{Red,Green,Blue} |
unknown | 未知编程阶段还不清楚类型的变量 | |
void | 返回值为void | 同C |
null、undefined | 需要分开定义 | let u : undefined = undefined; let null :null = null; |
联合类型 | 取值可以为多种类型中的一种 | let myFavoriteNumber :string | number myFavoriteNumber = ''; myFavoriteNumber = 20; |
同其他开发语言。
与kotlin类似,关键字由fun改为function,示例代码如下:
- Ts:
- function add(x:number ,y :number):number{
- return x+y;
- }
-
- kotlin:
-
- fun add (x:Int , y:Int) :Int{
- return x+y;//kotlin可以不写分号,目前没发现ts可以不需要写分号,后续发现补充
- }
用?表示,类似kotlin的空判断
可以被当做个数不限的可选参数,类似变长参数,用...表示
ES6版本提供了一个箭头函数,定义匿名函数的简写语法,用于函数表达式,省略了function的关键字。
- ([param1,param2,...paramn]) =>{
- //语句块
- }
用class表示,基于类的面向对象的编程方式。调用类似于java
同样具有继承(extends)
将代码拆分成多个文件,即所谓的模块。模块可以相互加载,并可以使用export和import交换功能,模块间可以相互调用。
模块里的变量、函数和类在模块外部是不可见的,除非明确使用export导出,同理,必须通过import导入其他模块导出的变量、函数、类等。
当对象实现了Symbol.iterator属性,表示它可迭代,具有迭代性。
迭代方式:
网址:华为开发者学堂
声明式UI
装饰器:装饰类、结构、方法和变量,赋予其特殊含义。
@Component:装饰器,表示自定义组件 (疑问:和注解有什么区别?特殊注解?)
@State:表示状态改变,当状态改变时,触发对应的组件刷新
- @Component
- struct 自定义组件名 {
- ...
- build(){
- ...
- }
- ...
- }
@Entry 自定义组件当做页面的默认入口组件,加载页面是首先创建并呈现。一个页面有且只能有一个。
被@Component修饰
- aboutToAppear() :创建组件后,执行build之前:可以对展示的数据初始化、申请资源等。
- aboutToDisappear():自定义组件实例被销毁时调用,可以用于销毁资源。
注:方法私有,在特定时间由系统调用,无法手动通过代码调用。
被@Entry修饰
- aboutToAppear():
- onPageShow():页面显示
- onBackPress():返回back
- onPageHide():页面消失 Home、Back等
- aboutToDisappear():
条件渲染:if...else if ...else
循环渲染:ForEach
@State:表示状态改变
@Link: @Link修饰的变量可以喝父组件的@State变量建立双向数据绑定。任何一方所做的修改都会反应给另一方。
另:$创建引用
网址:文档中心
以下内容为2024年1月30日补充
- 声明式描述
- 状态驱动视图更新
- @Entry //作为页面入口
- @Component
- struct 自定义组件名 {
- build(){
- Column(){
- //自定义组件的具体内容
- }
- }
- }
@Builder装饰器,来修饰一个函数,快速生成布局内容,从而可以避免重复的UI描述内容
@Link变量不能在组件内部进行初始化
不是所有的开发注意事项,刚开始接触,看到需要注意的点,就会记下来,后续会补充追加,用词可能也不准确,确保能看懂即可。
1.DevEco Studio开发过程中支持页面(组件)预览,但,预览的页面(组件)需要被@Entry标记,非@Entry标记的普通组件(@Entry标记的组件为入口页面)需要预览的话需要被@Preview,否则不支持预览;
代码:
至此,已经可以完成基本的harmony应用页面开发。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。