美文网首页鸿蒙开发
Arkts创建自定义组件

Arkts创建自定义组件

作者: 半个木头人 | 来源:发表于2024-03-01 23:42 被阅读0次

创建自定义组件

自定义组件的基本用法
以下示例展示了自定义组件的基本用法。

@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!';
        })
    }
  }
}

HelloComponent可以在其他自定义组件中的build()函数中多次创建,实现自定义组件的重用。

@Entry
@Component
struct ParentComponent {
  build() {
    Column() {
      Text('ArkUI message')
      HelloComponent({ message: 'Hello, World!' });
      Divider()
      HelloComponent({ message: '你好!' });
    }
  }
}

自定义组件的基本结构

  • struct:自定义组件基于struct实现,struct + 自定义组件名 + {...}的组合构成自定义组件,不能有继承关系。对于struct的实例化,可以省略new。
    说明: 自定义组件名、类名、函数名不能和系统组件名相同。
  • @Component:@Component装饰器仅能装饰struct关键字声明的数据结构。struct被@Component装饰后具备组件化的能力,需要实现build方法描述UI,一个struct只能被一个@Component装饰。
  • build()函数:build()函数用于定义自定义组件的声明式UI描述,自定义组件必须定义build()函数。
  • @Entry:@Entry装饰的自定义组件将作为UI页面的入口。在单个UI页面中,最多可以使用@Entry装饰一个自定义组件。@Entry可以接受一个可选的LocalStorage的参数。
@Entry
@Component
struct MyComponent {
}
  • build()函数
    所有声明在build()函数的语言,我们统称为UI描述,UI描述需要遵循以下规则:

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

不允许switch语法,如果需要使用条件判断,请使用if。反例如下。

build() {
  Column() {
    // 反例:不允许使用switch语法
    switch (expression) {
      case 1:
        Text('...')
        break;
      case 2:
        Image('...')
        break;
      default:
        Text('...')
        break;
    }
  }
}

不允许使用表达式,反例如下。

build() {
  Column() {
    // 反例:不允许使用表达式
    (this.aVar > 10) ? Text('...') : Image('...')
  }
}

自定义组件通用样式
自定义组件通过“.”链式调用的形式设置通用样式。
@Component
struct MyComponent2 {
build() {
Button(Hello World)
}
}

@Entry
@Component
struct MyComponent {
build() {
Row() {
MyComponent2()
.width(200)
.height(300)
.backgroundColor(Color.Red)
}
}
}

相关文章

  • 自定义组件

    创建自定义组件 使用自定义组件

  • 微信小程序之自定义组件

    1、创建自定义组件 在pages创建一个components目录专门用来存放自定义组件,这里创建一个弹窗组件mod...

  • 微信小程序-自定义组件

    自定义组件 步骤一: 创建自定义组件 创建components/common/login文件夹在login上右键,...

  • 调用自定义组件中的方法

    创建自定义组件 .json .js 页面中引入自定义组件 .json .xml 页面中调用自定义组件的方法 .js

  • 小程序之组件开发

    1.创建自定义组件 a.创建list-box组件 b.在自定义组件的list-box.json 文件中设置 "co...

  • 自定义组件相关知识点

    自定义组件的步骤 以tab切换组件为例 创建自定义组件创建components/tab文件夹在tab上右键,新建C...

  • 自定义组件的知识点

    自定义组件的步骤 以tab切换组件为例 创建自定义组件创建components/tab文件夹在tab上右键,新建C...

  • 小程序自定义组件

    自定义组件我把它分为简单的三个步骤1.创建组件 --- 2.编写组件 --- 3.调用,使用组件. 创建组件:创建...

  • React组件的生命周期学习笔记

    创建新组件的API 使用自定义组件1(类似DOM组件) 使用自定义组件2(工厂方法) 注意:React.DOM.*...

  • 小程序的自定义组件

    小程序允许我们使用自定义组件的方式来构建页面。 自定义组件 1. 创建自定义组件 类似于页面,一个自定义组件由 j...

网友评论

    本文标题:Arkts创建自定义组件

    本文链接:https://www.haomeiwen.com/subject/zpfhzdtx.html