ArkTS初识

ArkTS初识
最新回答
玉容花见羞

2021-10-26 12:37:24

ArkTS初识

ArkTS是鸿蒙生态的应用开发语言,它提供了声明式UI范式、状态管理支持等相应的能力,让开发者可以以更简洁、更自然的方式开发应用。以下是对ArkTS的详细介绍:

一、ArkTS的基本概念

ArkTS在保持TypeScript(简称TS)基本语法风格的基础上,进一步通过规范强化静态检查和分析。这使得在程序运行之前的开发期能检测更多错误,提升代码健壮性,并实现更好的运行性能。同时,ArkTS针对JavaScript(简称JS)/TS并发能力支持有限的问题,对并发编程API和能力进行了增强,并且支持与JS/TS高效互操作,兼容JS/TS生态。

二、ArkTS的设计理念

  1. 强化静态检查和分析

    在TS的基础上,ArkTS通过规范进一步强化了静态检查和分析。

    许多错误在编译时可以被检测出来,降低了代码运行错误的风险,有利于程序的健壮性。

    减少运行时的类型检查,降低了运行时负载,有助于提升执行性能。

  2. 保留TS语法特性

    ArkTS保留了TS大部分的语法特性,帮助开发者更容易上手。

    对于已有的标准TS代码,开发者仅需对少部分代码进行ArkTS语法适配,大部分代码可以直接复用。

  3. 兼容JS/TS生态

    ArkTS支持与标准JS/TS的高效互操作。

    HarmonyOS也提供了标准JS/TS的执行环境支持,方便开发者兼容现有生态。

三、ArkTS相比TS的特性差异

  1. 不支持在运行时更改对象布局

    在TS中,可以在运行时通过添加和删除某些属性来更改对象的布局。但这样做需要大量的性能开销。

    ArkTS不支持在运行时更改对象的布局,可以使用可选属性和给该属性赋值undefined的方式来替代。

  2. 对象字面量须标注类型

    在TS中,如果编译器不知道变量的确切类型,由于对象布局不能确定,编译器无法深度优化代码,造成性能瓶颈。

    在ArkTS中,需要为对象字面量标注类型。

  3. 不支持structural typing

    TS支持structural typing,即只要两个对象的形状(属性和属性类型)相同,它们就被认为是相同的类型。

    在ArkTS中,采用名义类型系统(nominal typing),不支持structural typing,以简化语言实现。

四、从TypeScript到ArkTS的适配规则

  1. 静态类型强制

    ArkTS强制使用静态类型,确保变量类型在编译时确定。

  2. 对象布局固定

    为最大化性能,ArkTS禁止在运行时改变对象结构。

  3. 运算符语义限制

    ArkTS限制运算符使用,如一元加法仅适用于数字,旨在提高代码清晰度和性能。

  4. 不支持结构化类型

    ArkTS目前不支持结构化类型,以简化语言实现。未来将根据需求和反馈考虑是否引入。

五、ArkTS的扩展

  1. 基本语法

    ArkTS通过声明式UI、自定义组件和动态UI扩展,结合ArkUI框架的系统组件和事件/属性方法,构成完整的UI开发体系。

  2. 状态管理

    ArkTS支持多维状态管理,允许数据在组件内部、不同组件层级间(如父子、爷孙)以及全局或跨设备传递。

  3. 渲染控制

    ArkTS提供条件渲染、循环渲染和数据懒加载功能,允许根据应用状态动态渲染UI,从数据源迭代创建组件,并按需加载数据以优化性能。

结语

通过本文的介绍,我们了解了ArkTS的基本概念、设计理念、与TS的特性差异、适配规则以及扩展功能。ArkTS作为鸿蒙生态的应用开发语言,具有强大的功能和优势,值得开发者深入学习和实践。学习任何新技术都需要时间和实践的积累,希望本文能为你的学习之路提供一些帮助。