鸿蒙应用开发ArkTs——001开发语言介绍

对比js、ts、flutter,ArkTS的优点
arkts 的语法特点
arkTs 的UI范式

一、简介

浅析ArkTS的起源和演进

Mozilla创造了JS,Microsoft创建了TS,Huawei进一步推出了ArkTS。TS是JavaScript(简称JS)的超集,ArkTS则是TS的超集。

在TypeScript(简称TS)的基础上,扩展了声明式UI、状态管理等相应的能力

ArkTS的优点

  • 对比js/ts:
    • 写一个应用需要了解三种语言(JS/TS、HTML和CSS)。这对Web开发者相对友好,但对非Web开发者来说,负担较重。
    • TS的类型检查仅在编译时检查
    • 在渲染方面,主流Web引擎由于本身复杂度以及历史原因,性能、资源占用方面与常见OS原生框架都有一定的差距,尤其在移动平台上。
  • 对比 Flutter
    • 语言生态:Dart和主流语言生态相比还是有非常大的差距。
    • 开发范式: Flutter暴露了很多细粒度的Widget接口,整体开发的简洁度,开发门槛,尤其是和Apple推出的SwiftUI相比,存在一定的差距。
  • ArkTs优点:
    • 语言生态 :JS/TS有比较完善的开发者生态,语言也比较中立友好。通过基于JS扩展的类Web开发范式,来支持主流的前端开发方式
    • 开发效率:基于TS扩展的声明式UI开发范式,提供了更简洁更自然的开发体验
    • 性能体验:在运行时方面,通过渲染引擎的增强,语言编译器和运行时的优化增强,进一步提升相关的性能体验。结合语言运行时的类型优化,以及渲染运行时的扁平化流水线技术等,进一步提升性能体验。
    • 跨设备/跨平台能力:可部署到不同设备上(包括百KB级内存的轻量设备)。另外,通过平台适配层的设计,构建了跨OS平台的基础设施。
      至于为啥不跟安卓一样用java,可能是因为听说谷歌因为用java被告了所以怕了吧……

二、ArkTs语法特点

语法特性

1. 强制使用静态类型

静态类型是ArkTS最重要的特性之一。如果使用静态类型,那么程序中变量的类型就是确定的。同时,由于所有类型在程序实际运行前都是已知的,编译器可以验证代码的正确性,从而减少运行时的类型检查,有助于性能提升。

2.禁止在运行时改变对象布局

为实现最大性能,ArkTS要求在程序执行期间不能更改对象布局。

3.限制运算符语义

为获得更好的性能并鼓励开发者编写更清晰的代码,ArkTS限制了一些运算符的语义。比如,一元加法运算符只能作用于数字,不能用于其他类型的变量。

4.不支持Structural typing

在UI开发框架中,ArkTS主要扩展了如下能力:

基本语法:

ArkTS定义了声明式UI描述、自定义组件和动态扩展UI元素的能力,再配合ArkUI开发框架中的系统组件及其相关的事件方法、属性方法等共同构成了UI开发的主体。

状态管理:

ArkTS提供了多维度的状态管理机制。在UI开发框架中,与UI相关联的数据可以在组件内使用,也可以在不同组件层级间传递,比如父子组件之间、爷孙组件之间,还可以在应用全局范围内传递或跨设备传递。另外,从数据的传递形式来看,可分为只读的单向传递和可变更的双向传递。开发者可以灵活地利用这些能力来实现数据和UI的联动。

渲染控制:

ArkTS提供了渲染控制的能力。条件渲染可根据应用的不同状态,渲染对应状态下的UI内容。循环渲染可从数据源中迭代获取数据,并在每次迭代过程中创建相应的组件。数据懒加载从数据源中按需迭代数据,并在每次迭代过程中创建相应的组件。

  • 22
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值