HarmonyOS - 创建自定义组件

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

  • 可组合
  • 可重用
  • 数据驱动UI更新

自定义组件通用样式

@Component
struct MyComponent2 {
  build() {
    Button(`Hello World`)
  }
}

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

ArkUI给自定义组件设置样式时,相当于给MyComponent2套了一个不可见的容器组件,而这些样式是设置在容器组件上的,而非直接设置给MyComponent2的Button组件。通过渲染结果我们可以很清楚的看到,背景颜色红色并没有直接生效在Button上,而是生效在Button所处的开发者不可见的容器组件上。

build()函数
所有声明在build()函数的语言,我们统称为UI描述

  • build()函数下的根节点唯一且必要
  • 不允许生命本地变量
  • 不允许在UI描述里直接使用console.info
  • 不允许创建本地的作用域
  • 不允许调用没有用@Builder装饰的方法,允许系统组件的参数是TS方法的返回值。
  • 不允许switch语法,如果需要使用条件判断,请使用if。
  • 不允许使用表达式(三元表达式)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容