首页 > 其他分享 >HarmonyOS 鸿蒙应用开发 - 创建自定义组件

HarmonyOS 鸿蒙应用开发 - 创建自定义组件

时间:2024-05-25 17:01:38浏览次数:21  
标签:20 自定义 鸿蒙 top HarmonyOS build 组件 margin

  开发者定义的称为自定义组件。在进行 UI 界面开发时,通常不是简单的将系统组件进行组合使用,而是需要考虑代码可复用性、业务逻辑与UI分离,后续版本演进等因素。因此,将UI和部分业务逻辑封装成自定义组件是不可或缺的能力。

1、创建自定义组件

1、组件必须使用 @Component  修饰 ;

2、@Entry 修饰 表示应用程序入口

3、build 方法里面必须有一个根容器 :如 Row 、Column 等

4、在自定组件中,任务成员都是私有(类似 java的 private)

5、@State状态机制,自动更新build方法里的内容

6、this 可以获取成员变量

列如:


//自定义组件
@Component
struct CountButton {
  //在自定组件中,任务成员都是私有(类似 java的 private)
  tip: String = "计数按钮"
  //@State状态机制,自动更新build方法里的内容
  @State count: number = 0

  build() {
    Column() { //根组件
      Text(this.tip + '')
        .margin({ top: 10 })
        .fontColor(Color.Black)
        .fontWeight(FontWeight.Bold)
        .fontSize(20)

      Row() {
        Text(this.count + '')
          .fontColor(Color.Red)
          .fontSize(20)
        Button('点击计数')
          .width(120)
          .margin({left:10})
          .onClick(()=>{
            this.count+=1;
        })

      }.margin({top:14})
    }
    .width(200)
    .height(100)
    .backgroundColor('#89CFF0')
    .borderRadius(12)
  }
}

2、使用自定义组件


@Entry
@Component
struct CommonText{
  build(){
    Column(){
      Text("使用自定义组件")
        .fontSize(30)
        .margin({top:20,bottom:20})
      CountButton() //使用自定义组件
      CountButton()
        .margin({top:20})

    }.height('100%')
    .width('100%')
    .alignItems(HorizontalAlign.Center)//水平居中
  }
}

3、效果图

标签:20,自定义,鸿蒙,top,HarmonyOS,build,组件,margin
From: https://blog.csdn.net/lin857/article/details/139197142

相关文章

  • 鸿蒙HarmonyOS实战-Stage模型(信息传递载体Want)
    ......
  • C++ 组含子项自定义排序通用设计
    #include<memory>classBase;usingBaseSp=std::shared_ptr<Base>;classBase{public:  explicitBase(intid):ID(id){}  intID;};classSorter{public:  virtualboolsort(constBaseSp&l,constBaseSp&r){returntrue;......
  • Mybatis-plus核心功能-自定义SQL
    MyBatis-Plus提供了强大的条件构造器。通过条件构造器可以写一些复杂的SQL语句,从而提高我们的开发效率。通过EntityWrapper(简称EW,MP封装的一个查询条件构造器)或者Condition(与EW类似)来让用户自由的构建查询条件,简单便捷,没有额外的负担,能够有效提高开发效率,它主要用于处理......
  • Android 背景资源自定义 ShapeDrawble
    前言制作随时可以编辑的背景图,不需要向UI要背景图。【规则的】ShapeDrawable 是绘制形状的Drawable,定义了基本的几何图形,如(矩形,圆形,线条等)ShapeDrawable 根元素是 <shape/>效果图分别四种形状情况:ectangle(矩形)、oval(椭圆,包括圆)、line(线段)、ring(环形)......
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Ads Kit
    1.问题描述:开屏广告效果最好的实现方式?解决方法:1、动画效果和开发者的实现方式有关,和开屏广告页面本身没什么关系的;2、示例代码中使用Router跳转的方式展示广告,主要是用于演示广告接口怎么集成。3、开发者可以不采用Router跳转的方式实现广告的展示,以下方式可供参考:方式一:可......
  • 三分钟获知快速自定义表单开发的优势特点
    如果想要轻松实现高效率的流程化办公,可以了解低代码技术平台、快速自定义表单开发等产品。在竞争越来越激烈的职场社会中,很多大中型企业都在对它越来越关注,希望能借助科技的力量打破信息孤岛,实现增值、降本、提效的发展目标。现在一起来了解低代码技术平台、快速自定义表单开发都......
  • Java 异常相关(二):异常处理机制的补充,自定义异常的使用等
    一、前言记录时间[2024-05-22]前置文章:Java异常相关:异常体系结构,异常与错误的区别等本文讲述Java异常相关知识,对异常处理机制进行补充,以及自定义异常的方式。文章对异常知识的描述显然是笼统而简洁的,对于异常的学习,更应注重平时的积累和整理。二、异常处理机......
  • 鸿蒙HarmonyOS实战-Stage模型(应用上下文Context)
    ......
  • 自定义Feign配置
    java代码的方式写一个配置类publicclassFeignConfig{/***将契约改为feign原生的默认契约。这样就可以使用feign自带的注解了。*@return默认的原生契约*/@BeanpublicContractfeignContract(){returnnewContract.Default......
  • kubernetes部署mongoDB 单机版 自定义配置文件、密码、日志路径等
    官方镜像地址:https://hub.docker.com/_/mongo?tab=descriptiondocker版的mongo移除了默认的/etc/mongo.conf,修改了db数据存储路径为/data/db.创建configmap配置,注意不能加fork=true,否则Pod会变成Completed。apiVersion:v1kind:ConfigMapmetadata:name:mongodb-confdat......