当前位置: 首页 > news >正文

鸿蒙前端开发3-ArkTS语言基本语法

官方文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/arkts-basic-syntax-0000001504650057-V2

1.基本语法

    

  •  装饰器 

     用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如上述示例中@Entry、@Component和@State都是装饰器,@Component表示自定义组件,@Entry表示该自定义组件为入口组件,@State表示组件中的状态变量,状态变量变化会触发UI刷新。

  • UI描述

    以声明式的方式来描述UI的结构,例如build()方法中的代码块

  • 自定义组件

    可复用的UI单元,可组合其他组件,如上述被@Component装饰的struct Hello

    a.自定义组件特点

      1.可组合

      2.可重用

      3.数据驱动UI更新

    b.基本用法,如果在另外的文件中引用该自定义组件,需要使用export关键字导出,并在使用的页面import该自定义组件。  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Component
struct HelloComponent {
  @State message: string = 'Hello, World!';
 
  build() {
    // HelloComponent自定义组件组合系统组件Row和Text
    Row() {
      Text(this.message)
        .onClick(() => {
          // 状态变量message的改变驱动UI刷新,UI从'Hello, World!'刷新为'Hello, ArkUI!'
          this.message = 'Hello, ArkUI!';
        })
    }
  }
}

   c.基本结构  

1
2
3
4
5
6
@Entry
@Component
struct MyComponent {
  build() {
  }
}

    1.@Entry装饰的自定义组件将作为UI页面的入口,在单个UI页面中,最多可以使用@Entry装饰一个自定义组件。@Entry可以接受一个可选的LocalStorage的参数

    2.struct:自定义组件基于struct实现,struct + 自定义组件名 + {...}的组合构成自定义组件,不能有继承关系。对于struct的实例化,可以省略new

    3.@Component:@Component装饰器仅能装饰struct关键字声明的数据结构。struct被@Component装饰后具备组件化的能力,需要实现build方法描述UI,一个struct只能被一个@Component装饰

    4.build()函数:build()函数用于定义自定义组件的声明式UI描述,自定义组件必须定义build()函数

      @Entry装饰的自定义组件,其build()函数下的根节点唯一且必要,且必须为容器组件,其中ForEach禁止作为根节点

http://www.hskmm.com/?act=detail&tid=1769

相关文章:

  • solo博客容器化运行访问
  • Flutter应用架构设计:基于Riverpod的状态管理最佳实践
  • P12502 「ROI 2025 Day1」天狼星的换班 「线段覆盖问题」
  • 动态规划DP问题详解,超全,思路全收集
  • SQL入门与实战
  • day05 课程
  • 【JPCS独立出版Fellow杰青云集】2025年先进材料与航空航天结构力学国际学术会议(AMASM 2025)
  • 算法-TSP旅行商问题-03 - jack
  • ArkTS
  • 一文读懂基因检测PLM、体外诊断试剂PLM的功能、价值、解决方案
  • ai本地部署工具有哪些?新手入门AI推荐这几个
  • 匿名内部类
  • 文件上传、分片上传结合antdProComponents表格展示,点击上传
  • 2025 年 PLM 市场新锐崛起:五家厂商以创新技术引领行业变革新路径
  • 2025 年国产 PLM 系统发展全景:厂商实力与核心功能深度解读
  • 开发效率翻倍!编码助手+云效 AI 评审如何破解代码质量与速度难题?
  • SSL部署完成,https显示连接不安全如何处理?
  • 各省简称
  • 完整教程:HDFS基准测试与数据治理
  • var code = 76cb2b4f-5a26-4a70-a3bf-dc8f2ae5162f
  • 解放双手!三端通用的鼠标连点神器
  • 用 C# 与 Tesseract 实现验证码识别系统
  • 【9月19日最终截稿,SPIE出版】2025年信息工程、智能信息技术与人工智能国际学术会议(IEITAI 2025)
  • Dockerfile:如何用CMD同时启动两个进程
  • 启动GA-Event Activated,结束GA-End Ability
  • VMware Avi Load Balancer 31.1.2 发布 - 多云负载均衡平台
  • C# WinForms 使用 CyUSB.dll 访问 USB 设备
  • NKOJ全TJ计划——NP3990
  • Linux redis 8.2.1源码编译
  • MarkDown学习