DEV Community

SameX
SameX

Posted on

The World of HarmonyOS Programming: Declarative UI Programming and State Management in ArkUI

This article aims to deeply explore the technical details of the Huawei HarmonyOS Next system (up to API 12 as of now), and is summarized based on actual development practices. It mainly serves as a vehicle for technical sharing and communication. Mistakes and omissions are inevitable. Colleagues are welcome to put forward valuable opinions and questions so that we can make progress together. This article is original content, and any form of reprint must indicate the source and the original author.

The UI Programming Paradigm of ArkTS

ArkUI is a declarative UI programming framework provided in the Huawei HarmonyOS Next system (up to API 12 as of now). Based on the ArkTS programming language, it offers developers a more concise and efficient way to develop UIs. In this article, we will delve into the characteristics and advantages of declarative UIs, as well as the application of state management in UI development.

Key Points

Characteristics and Advantages of Declarative UIs

Characteristics:

  • Declarative: Developers only need to describe what the UI should look like, and the framework will automatically handle the UI rendering.
  • Component-based: The UI is split into independent and reusable components, which are convenient for management and maintenance.
  • Reactive: The UI will automatically update according to changes in the state, without the need for manual manipulation of the DOM. Advantages:
  • Simplicity: There is less code, and the structure is clearer.
  • Maintainability: Componentization makes the code easier to maintain and test.
  • Efficiency: Declarative UI frameworks usually can better optimize rendering performance. ##### Application of State Management in UI Development State management is a crucial part of declarative UI development. It is responsible for tracking and managing the state of the UI. In ArkUI, state management is usually achieved in the following ways:
  • Reactive Variables: Use the @State decorator to define reactive variables. When the variables are updated, the UI will automatically re-render.
  • State Lifting: Lift the shared state to the parent component and pass it to the child components through properties. ##### Components, Layouts, and Event Handling in ArkUI Components:
  • Basic Components: Such as Text, Button, Image, etc., which are used to construct the basic elements of the UI.
  • Container Components: Such as Column, Row, Stack, etc., which are used for layout and combining other components. Layouts:
  • Flex Layout: Achieve flexible layouts through components like Column and Row.
  • Positioning Layout: Use the Position component for absolute or relative positioning. Event Handling:
  • Event Binding: Bind to components through event handlers such as onClick and onAppear.
  • Event Passing: Define custom events through the @Event decorator and pass them between components. #### Example of Creating a Reactive UI Using ArkUI The following is a simple example demonstrating how to create a reactive UI using ArkUI:
import { Component, State } from '@ArkUI/system';
@Component
struct Counter {
    @State count: number = 0;
    build() {
        Column() {
            Text(`Count: ${this.count}`)
              .fontSize(24)
              .fontWeight(FontWeight.Bold);
            Button('Click me')
              .onClick(() => {
                    this.count += 1;
                });
        }
      .width('100%')
      .height('100%');
    }
}
Enter fullscreen mode Exit fullscreen mode

This code defines a component named Counter that contains a text and a button. Clicking the button will increase the value of the counter, and the UI will automatically update to display the new count.

Table: Comparison between Traditional UI Programming and Declarative UI Programming

Characteristics Traditional UI Programming Declarative UI Programming
Programming Paradigm Imperative Declarative
Code Volume More Less
Maintenance Difficulty Higher Lower
State Management Manual DOM Manipulation Automatic Response to State Changes
Performance Optimization Manual Optimization Required Framework Automatic Optimization

Summary

Through the above introduction, you may have a deeper understanding of the declarative UI programming and state management in ArkUI. Declarative UI programming not only simplifies the code but also improves development efficiency and application performance. Hope this article can help you better master ArkUI and utilize its powerful functions in HarmonyOS application development.

Top comments (0)