HarmonyOS--ArkTS(1)--基本语法(1)

这篇具有很好参考价值的文章主要介绍了HarmonyOS--ArkTS(1)--基本语法(1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

基本语法概述

声明式UI描述

自定义组件

创建自定义组件

自定义组件的结构--struct ,@Component,build()函数

生命周期


基本语法概述

harmony osarkts基础语法,harmonyos,harmonyos,前端

  • 装饰器: 用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如上述示例中@Entry、@Component和@State都是装饰器,@Component表示自定义组件,@Entry表示该自定义组件为入口组件,@State表示组件中的状态变量,状态变量变化会触发UI刷新。
  • UI描述:以声明式的方式来描述UI的结构,例如build()方法中的代码块。
  • 自定义组件:可复用的UI单元,可组合其他组件,如上述被@Component装饰的struct Hello。
  • 系统组件:ArkUI框架中默认内置的基础和容器组件,可直接被开发者调用,比如示例中的Column、Text、Divider、Button。
  • 属性方法:组件可以通过链式调用配置多项属性,如fontSize()、width()、height()、backgroundColor()等。
  • 事件方法:组件可以通过链式调用设置多个事件的响应逻辑,如跟随在Button后面的onClick()。
  • 系统组件、属性方法、事件方法具体使用可参考基于ArkTS的声明式开发范式。

除此之外,ArkTS扩展了多种语法范式来使开发更加便捷:

  • @Builder/@BuilderParam:特殊的封装UI描述的方法,细粒度的封装和复用UI描述。
  • @Extend/@Style:扩展内置组件和封装属性样式,更灵活地组合内置组件。
  • stateStyles:多态样式,可以依据组件的内部状态的不同,设置不同样式。

声明式UI描述

ArkTS以声明方式 组合 和 扩展 组件 来 描述应用程序的UI,同时还提供了基本的属性事件子组件配置方法,帮助开发者实现应用交互逻辑。

//如果组件支持子组件配置,则需在尾随闭包"{...}"中为组件添加子组件的UI描述。Column、Row、Stack、Grid、List等组件都是容器组件。

@State size:number = 10
myClickHandler(){}

build(){

Column() {
  Row() {
    Image('https://xyz/test.jpg')
    Image('test1.jpg')
      .width(100)
      .height(100)

    // string类型的参数
    Text('test')
       //枚举类型
      .fontSize(20)
      .fontColor(Color.Red)
      .fontWeight(FontWeight.Bold)
    // $r形式引入应用资源,可应用于多语言场景
    Text($r('app.string.title_value'))
     .fontSize(this.size)
    // 无参数形式
    Text()

    Button('click +1')
      //事件方法以“.”链式调用的方式配置系统组件支持的事件
      //三种方式
      .onClick(() => {
        this.myText = 'ArkUI';
      })
      .onClick(function(){
        this.myText = 'ArkUI';
      }.bind(this))
      .onClick(this.myClickHandler.bind(this))
  }
}
}

自定义组件

创建自定义组件

自定义组件具有以下特点:

  • 可组合:允许开发者组合使用系统组件、及其属性和方法。
  • 可重用:自定义组件可以被其他组件重用,并作为不同的实例在不同的父组件或容器中使用。
  • 数据驱动UI更新:通过状态变量的改变,来驱动UI的刷新
自定义组件的结构--struct ,@Component,build()函数
@Component
struct MyComponent {
  build() {
  }
}
@Entry
@Component
struct MyComponent {
}

 提示1: @Entry装饰的自定义组件将作为UI页面的入口 

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

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

//自定义组件 


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

@Component
struct HelloComponent {
  @State message: string = 'Hello, World!';
  
  build() {
    // HelloComponent自定义组件组合--系统组件Row和Text
    
    //(当前根节点Row)
    Row() {
      Text(this.message)
        .onClick(() => {
          // 状态变量message的改变驱动UI刷新,UI从'Hello, World!'刷新为'Hello, ArkUI!'
          this.message = 'Hello, ArkUI!';
        })
    }
  }
}

 //多次调用自定义组件 

//@Entry装饰的自定义组件,其build()函数下的根节点唯一且必要,且必须为容器组件,其中ForEach禁止作为根节点。
@Entry
@Component
struct ParentComponent {
  build() {
    //(当前根节点Column)
    Column() {
      Text('ArkUI message')
        //多次调用自定义组件
      HelloComponent({ message: 'Hello, World!' });
      Divider()
      HelloComponent({ message: '你好!' });
    }
  }
}
生命周期

页面生命周期,即被@Entry装饰的组件生命周期,提供以下生命周期接口:

  • onPageShow:页面每次显示时触发一次,包括路由过程、应用进入前台等场景,仅@Entry装饰的自定义组件生效。
  • onPageHide:页面每次隐藏时触发一次,包括路由过程、应用进入前后台等场景,仅@Entry装饰的自定义组件生效。
  • onBackPress:当用户点击返回按钮时触发,仅@Entry装饰的自定义组件生效。

组件生命周期,即一般用@Component装饰的自定义组件的生命周期,提供以下生命周期接口:

  • aboutToAppear:组件即将出现时回调该接口,具体时机为在创建自定义组件的新实例后,在执行其build()函数之前执行。
  • aboutToDisappear:在自定义组件析构销毁之前执行。不允许在aboutToDisappear函数中改变状态变量,特别是@Link变量的修改可能会导致应用程序行为不稳定。

生命周期流程如下图所示,下图展示的是被@Entry装饰的组件(首页)生命周期。

harmony osarkts基础语法,harmonyos,harmonyos,前端文章来源地址https://www.toymoban.com/news/detail-810604.html

到了这里,关于HarmonyOS--ArkTS(1)--基本语法(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HarmonyOS学习路之方舟开发框架—学习ArkTS语言(基本语法 四)

    当创建了自定义组件,并想对该组件添加特定功能时,例如在自定义组件中添加一个点击跳转操作。若直接在组件内嵌入事件方法,将会导致所有引入该自定义组件的地方均增加了该功能。为解决此问题,ArkUI引入了@BuilderParam装饰器,@BuilderParam用来装饰指向@Builder方法的变量

    2024年02月17日
    浏览(52)
  • HarmonyOS学习路之方舟开发框架—学习ArkTS语言(基本语法 二)

    在ArkUI中,UI显示的内容均为组件,由框架直接提供的称为系统组件,由开发者定义的称为自定义组件。在进行 UI 界面开发时,通常不是简单的将系统组件进行组合使用,而是需要考虑代码可复用性、业务逻辑与UI分离,后续版本演进等因素。因此,将UI和部分业务逻辑封装成

    2024年02月04日
    浏览(53)
  • HarmonyOS学习路之方舟开发框架—学习ArkTS语言(基本语法 三)

    在开始之前,先明确自定义组件和页面的关系: 自定义组件: @Component 装饰的 UI 单元,可以组合多个系统组件实现 UI 的复用。 页面:即应用的 UI 页面。可以由一个或者多个自定义组件组成, @Entry 装饰的自定义组件为页面的入口组件,即页面的根节点,一个页面有且仅能有

    2024年02月16日
    浏览(59)
  • HarmonyOS(二)—— 初识ArkTS开发语言(下)之ArkTS声明式语法和组件化基础

    通过前面ArkTS开发语言(上)之TypeScript入门以及ArkTS开发语言(中)之ArkTS的由来和演进俩文我们知道了ArkTS的由来以及演进,知道了ArkTS具备了声明式语法和组件化特性,今天,搭建一个可刷新的排行榜页面。在排行榜页面中,使用循环渲染控制语法来实现列表数据渲染,使

    2024年02月04日
    浏览(52)
  • HarmonyOS鸿蒙学习基础篇 - 基本语法概述

    书接上文 HarmonyOS鸿蒙学习基础篇 - 运行第一个程序 Hello World 基本语法概述 打开 entrysrcmainetspagesindex.ets 代码如下 代码详细解释如下: 在以上示例中,ArkTS的基本组成如下所示。  装饰器: 用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如上述示例中@Entry、@Comp

    2024年01月24日
    浏览(60)
  • 鸿蒙HarmonyOS(ArkTS)语法数据类型

    上文 鸿蒙HarmonyOS(ArkTS)语法 声明变量及注意事项 我们简述了变量声明的几种形式 那么 今天我们就来说说数据类型 上文我们也说过 ArkTS 是ts的优化版 那么 我们数据类型大部分是跟着TS走的 number 数字类型 声明变量为一个数值 js中的 number 即可是正数也可以是小数 0 又或者 负

    2024年02月05日
    浏览(42)
  • harmonyOS基础(三)- 快速弄懂HarmonyOS ArkTs基础组件、布局容器(前端视角篇)

    大家好!我是黑臂麒麟,一位6年的前端; 随着 鸿蒙4.0 的发布。鸿蒙社区不断壮大,且市场对 harmonyOS 应用认可度越来越高。很多公司开始对 鸿蒙应用开发 越来越重视。 之前想入坑鸿蒙,一直犹豫未下定决心学习。这次不再等待,开始系统学习起来。 此系列文章只做 harm

    2024年02月20日
    浏览(46)
  • HarmonyOS-ArkTS基础

    Mozilla创造了JS,Microsoft创建了TS,Huawei进一步推出了ArkTS。 从最初的基础的逻辑交互能力,到具备类型系统的高效工程开发能力,再到融合声明式UI、多维状态管理等丰富的应用开发能力,共同组成了相关的演进脉络。 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简

    2024年02月04日
    浏览(43)
  • HarmonyOS鸿蒙学习基础篇 - ArkTs介绍

    概述     ArkTS 是 Harmenyos优选的主力应用开发语言,它是一种基于TypeScript(简称TS)的应用开发语言,由华为开发。它在保持TS基本语法风格的基础上,对TS的动态类型特性施加更严格的约束,引入静态类型。同时,ArkTS提供了声明式UI、状态管理等相应的能力,让开发者可以

    2024年01月22日
    浏览(45)
  • 【HarmonyOS北向开发】-04 ArkTS开发语言-ArkTS基础知识

     飞书原文档:Docs

    2024年02月11日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包