HarmonyOS NEXT 了解 ArkUI:鸿蒙应用开发的得力框架

ArkUI 是什么

    ArkUI (方舟UI框架)是鸿蒙系统应用界面的 UI 开发框架,为开发者提供了简洁的 UI 语法、丰富的 UI 组件、强大的动画机制以及灵活的事件交互等基础能力,以满足应用开发者对 UI 界面开发的多样化需求。它是构建分布式应用的声明式 UI 开发框架,具备简洁自然的 UI 信息语法、多维的状态管理以及实时界面预览等能力,提升开发者应用开发效率,为用户带来生动流畅的体验。

ArkUI 的特征

  •       UI 组件:ArkUI 内置了大量多态组件。基础组件如Image(图片)、Text(文本)、Button(按钮)等,是构建界面的基本元素。容器组件能够包含一个或多个子组件,方便进行布局管理。绘制组件满足开发者自定义绘图需求,媒体组件则提供视频播放等能力。这里的“多态”特性,意味着组件针对不同类型设备进行了设计,具备在不同平台样式适配能力,开发者还可以根据自身需求自定义组件。​
  •       布局:不仅保留了经典的弹性布局,还提供了列表、宫格、栅格布局以及适应多分辨率场景开发的原子布局能力。多样化的布局方式,让开发者能够轻松应对各种复杂的界面设计需求,实现界面在不同设备上的完美适配。​
  •       动画:在 UI 界面美化方面,ArkUI 除了组件内置动画效果外,还提供了属性动画(可以对组件的属性进行动画设置,如透明度、位置等)、转场动画(用于页面或组件之间切换时的动画效果)和自定义动画能力,为应用增添更多灵动性和趣味性。​
  •       绘制:ArkUI 提供多种绘制能力,支持绘制形状(如矩形、圆形等)、颜色填充、绘制文本、变形与裁剪以及嵌入图片等,充分满足开发者的自定义绘图需求,有助于打造独特的应用界面风格。​
  •       交互事件:为满足应用在不同平台通过不同输入设备进行 UI 交互响应的需求,ArkUI 默认适配触摸手势、遥控器按键输入、键鼠输入等,同时提供相应的事件回调,方便添加交互逻辑,实现与用户的良好互动。​
  •       平台 API 通道:ArkUI 提供了 API 扩展机制,开发者可通过该机制对平台能力进行封装,提供风格统一的 JS 接口,从而能够便捷地调用系统能力,拓展应用功能。

几种语言与 ArkUI 的关系

      JavaScript(JS):是一种广泛应用于 Web 开发的脚本语言。在 ArkUI 中,通过兼容 JS 的类 Web 开发范式,便于Web前端开发者快速上手鸿蒙应用开发。开发者可以利用 JS 的语法和特性,结合 ArkUI 提供的组件和能力,构建应用界面。​

      TypeScript(TS):是 JavaScript 的超集,它在 JavaScript 的基础上加入了静态类型,强化了代码的模块化和规范性,支持面向对象编程思想,并且拥有一些更丰富的语法,如枚举、装饰器等。TS 有助于开发大型应用程序,提高代码的可维护性和稳定性。​

      ArkTS:在保持 TypeScript 基本语法风格的基础上,对 TS 的动态类型特性施加更严格的约束,引入静态类型。ArkTS 匹配 ArkUI 框架,扩展了声明式 UI、状态管理等能力,让开发者能够以更简洁、自然的方式开发跨端应用。可以说,ArkTS 是 TypeScript 的超集,是鸿蒙应用开发目前的主力语言。(期待仓颉~)

两种开发范式

      声明式开发范式(基于 ArkTS):开发者只需描述 UI 应该呈现的样子,框架会自动处理 UI 的渲染过程。这种方式具有组件化(UI 被拆分为独立的可复用组件,便于管理和维护)、响应式(UI 会根据状态的变化自动更新,无需手动操作 DOM)的特点。优势在于代码量更少,结构更清晰,可维护性高,并且声明式 UI 框架通常能够更好地优化渲染性能。例如:

@Entry
@Component
struct Index {
  @State count: number = 0;
  build() {
    Column() {
      Text(`Count: ${this.count}`)
        .fontSize(24)
        .fontWeight(FontWeight.Bold);
      Button('增加')
        .onClick(() => {
          this.count++;
        })
        .width(100)
        .height(40)
        .backgroundColor(Color.Green)
        .fontSize(16)
        .fontColor(Color.White);
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
    .alignItems(FlexAlign.Center);
  }
}

我们通过声明式的方式定义了一个包含文本和按钮的界面,按钮点击时会自动更新文本内容。

      类 Web 开发范式(兼容 JS):通过模板、样式、逻辑三段式来构建应用 UI 界面,并结合相应运行时实现优化的运行体验。这种范式适用于直接将前端 JS 代码改造成鸿蒙版应用,方便 Web 开发者快速将已有的 Web 应用迁移到鸿蒙平台,使用 Web 命令式编程编写鸿蒙应用 UI。不过,相比声明式开发范式,其渲染更新链路相对复杂,占用内存较多。例如在类 Web 开发范式中,可能会有类似以下的代码结构:

<template>
  <div class="container">
    <p>{{ message }}</p>
    <button @click="increment">增加</button>
  </div>
</template>

<style>
.container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
}
</style>

<script>
export default {
  data() {
    return {
      message: 'Count: 0',
      count: 0
    };
  },
  methods: {
    increment() {
      this.count++;
      this.message = `Count: ${this.count}`;
    }
  }
};
</script>

通过 HTML 模板定义结构,CSS 样式定义外观,JS 逻辑实现交互。

#HarmonyOS应用开发工具##Ark-TS UI#

posted @ 2025-03-18 11:03  Cydar  阅读(110)  评论(0)    收藏  举报