速查

其他
关键字 注释
module.json5、abilities <HarmonyOS第一课>运行Hello World-华为开发者学堂 (huawei.com)
struct 自定义组件基于struct实现
@Component 赋予组件化能力
@Entry 代表自定义组件可作为页面入口组件
export 需要将X文件下的组件交给Y文件下的组件使用的时候
readonly 设置该变量为只读
@Builder 全局自定义构建函数:$$代表引用函数
@State 被装饰拥有其所属组件的状态,可以作为其子组件单向和双向同步的数据源。当其数值改变时,会引起相关组件的渲染刷新。
@Watch 监听、观察变量
@Prop 被装饰可以和父组件建立单向同步关系,@Prop装饰的变量是可变的,但修改不会同步回父组件。
@Link 被装饰变量和父组件构建双向同步关系的状态变量,父组件会接受来子@Link装饰的变量的修改的同步,父组件的更新也会同步给@Link装饰的变量。
@Provide/@Consume @Provide/@Consume装饰的变量用于跨组件层级(多层组件)同步状态变量,可以不需要通过参数命名机制传递,通过alias(别名)或者属性名绑定。
@Observed @Observed装饰class,需要观察多层嵌套场景的class需要被@Observed装饰。单独使用@Observed没有任何作用,需要和@ObjectLink、@Prop连用。
@ObjectLink @ObjectLink装饰的变量接收@Observed装饰的class的实例,应用于观察多层嵌套场景,和父组件的数据源构建双向同步。
aboutToAppear/aboutToDisappear/onPageShow/onPageHide/onBackPress 组件生命周期
router.pushUrl,router.replaceUrl 页面跳转或者替换,mode参数拥有两种模式:Single、Standard。
UIAbility 有三种启动模式:multiton、singleton、specified
(router.getParams() as Record<string, string>)['src'] 获取上个页面传递的参数
Stack 叠放布局
===和==区别 ==是把类型转成一样的再比较,而===则是直接比较类型才比较值
private value : undefined = undefined 不确定如何初始化,用于开启了严格空值检测时使用
private value : X undefined 被视为联合类型,运行时可能有额外的开销
let a = null! 告诉编译器这个值后面肯定会赋值不会为null
@Styles 抽取 公共样式、事件 不可以传递参数@Styles装饰器:定义组件重用样式-UI范式基本语法-学习ArkTS语言-基础入门 - 华为HarmonyOS开发者 (huawei.com)
@Extend 扩展 特定组件 样式、事件 可以传递参数 @Extend装饰器:定义扩展组件样式-UI范式基本语法-学习ArkTS语言-基础入门 - 华为HarmonyOS开发者 (huawei.com)
@Builder 抽取 结构、样式、事件 可以传递参数@Builder装饰器:自定义构建函数-UI范式基本语法-学习ArkTS语言-基础入门 - 华为HarmonyOS开发者 (huawei.com)
context.eventHub.emit 主线程内通信用EventHub
emitter.on 主线程与Worker间通信用Emitter
生命周期:
关键字 注释
onCreate 在UI页面可见之前
onWindowStageCreate 例如用户打开游戏应用,正在打游戏的时候,有一个消息通知,打开消息,消息会以弹窗的形式弹出在游戏应用的上方,此时,游戏应用就从获焦切换到了失焦状态,消息应用切换到了获焦状态。对于消息应用,在onWindowStageCreate回调中,会触发获焦的事件回调,可以进行设置消息应用的背景颜色、高亮等操作。
Foreground 进入前台:例如用户打开地图应用查看当前地理位置的时候,假设地图应用已获得用户的定位权限授权。在UI页面显示之前,可以在onForeground回调中打开定位功能,从而获取到当前的位置信息。
Background 进入后台:例如用户打开地图应用查看当前地理位置的时候,假设地图应用已获得用户的定位权限授权。在UI页面显示之前,可以在onForeground回调中打开定位功能,从而获取到当前的位置信息。
onWindowStageDestroy 可以在该回调中释放UI页面资源
onDestroy 可以在onDestroy回调中进行系统资源的释放、数据的保存等操作
基础组件:

<HarmonyOS第一课>从简单的页面开始-华为开发者学堂 (huawei.com)

关键字 注释
Text 文本
Image 图片,支持加载网络图片
TextInput 编辑文本框
Button 按钮
LoadingProgress 加载进度
容器组件:

<HarmonyOS第一课>从简单的页面开始-华为开发者学堂 (huawei.com)

关键字 注释
Column 垂直方向布局的容器
Row 水平方向布局的容器
属性名称 描述
justifyContent 设置子组件在主轴方向上的对齐格式。
alignItems 设置子组件在交叉轴方向上的对齐格式。
List组件:

<HarmonyOS第一课>从简单的页面开始-华为开发者学堂 (huawei.com)

属性名称 描述
List 一般和子组件ListItem一起使用,List列表中的每一个列表项对应一个ListItem组件
ListItem 一般使用循环搭配使用:ForEach(this.arr, (item: number) => {ListItem() {
Grid组件:

<HarmonyOS第一课>从简单的页面开始-华为开发者学堂 (huawei.com)

属性名称 描述
Grid Grid组件一般和子组件GridItem一起使用,Grid列表中的每一个条目对应一个GridItem组件。
GridItem 一般使用循环搭配使用:ForEach(this.arr, (item: string) => {GridItem() {
设置4*4的九宫数据、不可滚动 .columnsTemplate('1fr 1fr 1fr 1fr').rowsTemplate('1fr 1fr 1fr 1fr').columnsGap(10).rowsGap(10)
可滚动的数据 GridItem的高度设置为固定值,例如100;仅设置columnsTemplate属性,不设置rowsTemplate属性,就可以实现Grid列表的滚动
列表滑动事件:
属性名称 描述
onScroll 列表滑动时触发,返回值scrollOffset为滑动偏移量,scrollState为当前滑动状态。
onScrollIndex 列表滑动时触发,返回值分别为滑动起始位置索引值与滑动结束位置索引值。
onReachStart 列表到达起始位置时触发。
onReachEnd 列表到底末尾位置时触发。
onScrollStop 列表滑动停止时触发。
Tabs组件:

<HarmonyOS第一课>从简单的页面开始-华为开发者学堂 (huawei.com)

管理组件状态
属性名称 描述
@State 组件内的状态管理:框架内部会建立数据与视图间的绑定
@Prop 从父组件单向同步状态:修饰子组件的变量,当父组件中状态变化时,该状态值也会更新至@Prop修饰的变量;对@Prop修饰的变量的修改不会影响其父组件中的状态。
@Link 与父组件双向同步状态:修饰子组件@Link变量,必须是在父组件中存在的状态变量。
@Provide和@Consume 跨组件层级双向同步状态:在跨了很多层级的组件,在父组件使用@Provide修饰,任意一个子组件用@Consume修饰即可同步
弹窗

<HarmonyOS第一课>构建更加丰富的页面-华为开发者学堂 (huawei.com)

WebView
registerJavaScriptProxy 使用这个注册进WebView

数据管理:
属性名称 描述
创建 onCreate中创建PreferencesUtil.createFontPreferences(this.context);

<HarmonyOS第一课>保存应用数据-华为开发者学堂 (huawei.com)

匿名内部类:
export interface CustomPromiseClass {
  call(): String;
}

let customPromise: CustomPromiseClass = {
    }
return xxxx(customPromise)


如果实现多个方法
let requestInterface: RequestInterface = {
      onSuccess() {

      },
      onError() {

      }
    };
相关语法:
属性名称 等同于java的描述
let ik = [] byte[] iK = new byte[256],长度是动态的
encodeURI URLEncoder.encode()
new util.Base64Helper().decodeSync(resultStr) new String(Base64.decode(resultStr, Base64.NO_WRAP));
传参的相关方法:

页面跳转和两个页面之间的数据传递-鸿蒙ArkTS_arkts页面跳转-CSDN博客

手机震动和view震动

HarmonyOS NEXT使用弹簧曲线实现抖动动画及手机振动效果案例_鸿蒙开发闹钟抖动的动效怎样实现?、-CSDN博客

等待xx秒
// 等待2s
await new Promise<void>(resolve => setTimeout(resolve, 2000))
undefined和null的区别

undefined表示变量未定义或未赋值的初始状态值,是一个机器式标识;
null表示一个空对象变量,本身是空对象指针,是一个程序式标识。

object API11后报错,可以使用以下

Const params : Record<string, Object> = router.getParams() as Record<string, Object>

渲染控制

渲染控制概述-渲染控制-学习ArkTS语言-基础入门 | 华为开发者联盟 (huawei.com)

Navigation路由

第6篇:Navigation系统路由表(推荐)-华为开发者论坛 | 华为开发者联盟 (huawei.com)

异步锁

ArkTSUtils.locks.AsyncLock

与Android不同的地方
  • 当想使用组件占满剩下的空间时,可使用layoutWeight
  • Scroll内只能使用Column等布局,不能使用RelativeContainer,不然滚动失效
  • 基于上面的一点,Scroll内的Column布局可以使用RelativeContainer,但是需要height('auto')
  • Scroll默认高度是100%的,所以如果有需要的话,需要给高度值
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容