ArkTS基础——Component自定义组件——【坚果派——红目香薰】

简介: ArkTS基础——Component自定义组件——【坚果派——红目香薰】

ArkTS基础——Component自定义组件

这里的基础装饰器可以看到,例如State,设定在Component自定义组件中,

@Entry
@Component
struct Index {
  @State message: string = 'Hello World'
  @State showInfo: string = '这是华为的ArkTS语言' //这里是State是自动刷新的
  build() {
    Row() {
      Column() {//行信息
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      Column(){//重新创建一行
        Text(this.showInfo)//使用this.即可获得自定义的变量名进行参数设置
          .fontColor(Color.Red)
          .fontSize(70)
          .fontWeight(FontWeight.Bolder)
          .textAlign(TextAlign.Center)
      }
      .width('100%')
    }
    .height('100%')
  }
}

启动项目

先需要启动虚拟机。

打开虚拟机

打开虚拟机

在虚拟机的右侧可以看到第一个就是电源按钮,点击一下后等待虚拟机启动完毕。

启动完毕

运行查看效果

在右上角能看到虚拟机的选择以及运行按钮。

效果如下:

我们将代码放在一行的两列上了,我们需要修改一下。

@Entry
@Component
struct Index {
  @State message: string = 'Hello World'
  @State showInfo: string = '这是华为的ArkTS语言' //这里是State是自动刷新的
  build() {
    Row() {
      Column() {//行信息
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
        Text(this.showInfo)//使用this.即可获得自定义的变量名进行参数设置
          .fontColor(Color.Red)
          .fontSize(70)
          .fontWeight(FontWeight.Bolder)
          .textAlign(TextAlign.Center)
      }
      .width('100%')
    }
    .height('100%')
  }
}

都放在一个列里。

调用自定义组件

可以直接声明一个新的【Component】,这个就不用单独的写上Entry了,看好格式,需要独立的结构体,当完成后在主运行的组件中当做函数引用即可使用。

@Entry
@Component
struct Index {
  @State message: string = 'Hello World'
  build() {
    Row() {
      Column() { //行信息
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
        ShowInfos()// 调用自定义组件
      }
      .width('100%')
    }
    .height('50%')
  }
}
@Component
struct ShowInfos {
  @State showInfo: string = '这是华为的ArkTS语言' //这里是State是自动刷新的
  build() {
    Row() {
      Column() {
        Text(this.showInfo) //使用this.即可获得自定义的变量名进行参数设置
          .fontColor(Color.Red)
          .fontSize(70)
          .fontWeight(FontWeight.Bolder)
          .textAlign(TextAlign.Center)
      }.width('100%')
    }.height('50%')
  }
}

效果如图:

自定义组件——装饰器

自定义组件的内容很多,需要逐一的来讲述,我们在struct结构体中输入一个@符号即可看到所有的【装饰器】。

下面是几个常用的装饰器的解释说明,后面我们会逐一的使用测试一下。

@Watch( ' 函数 '  ) 用来监听变量,当变量发生改变时,自动执行括号内的函数(注:不要在这个函数内做任何改变该变量值得操作,否则会卡死报错)

@Styles装饰器可以将多条样式设置提炼成⼀个方法,直接在组件声明的位置调用。通过@Styles装饰器可以快速定义并复用自定义样式。用于快速定义并复用自定义样式。

@State  装饰的变量值修改时,页面也会随之更新,不使用@State修饰符定义的变量更新后页面不会刷新,必须有初始化的值。

@Prop  与@State有相同的语义,但初始化方式不同,不允许有初始化的值。@Prop装饰的变量必须使用其父组件提供的@State变量进行初始化,允许组件内部修改@Prop变量,但更改不会通知给父组件,即@Prop属于单向数据绑定。

@Link  装饰的变量可以和父组件的@State变量建立双向数据绑定,需要注意的是:@Link变量不能在组件内部进行初始化。且在使用link时,传递的参数要使用 $ 符合,否则会报错(但不影响使用)

@Builder   装饰的自定义函数内可以写UI布局的内容,例如:装饰后可以写Row布局函数

@Extend() 用来装饰某一类标签,括号内必须写上要装饰的标签名,例如:@Extend(Text)表示要该装饰器装饰的函数内部只能写与Text有关的样式设置,不能写其他无关的内容,否则会报错

@Entry 入口文件装饰器,哪个组件使用了这个装饰器,哪个组件就可以在页面上展示出来

@Component   struct  装饰的是一个一个的组件

@Provide & @Consume  多层嵌套组件之间的传值

相关文章
|
安全 算法 Java
了解 Java 中的 AtomicInteger 类
了解 Java 中的 AtomicInteger 类
310 1
|
机器学习/深度学习 并行计算 测试技术
MLX vs MPS vs CUDA:苹果新机器学习框架的基准测试
如果你是一个Mac用户和一个深度学习爱好者,你可能希望在某些时候Mac可以处理一些重型模型。苹果刚刚发布了MLX,一个在苹果芯片上高效运行机器学习模型的框架。
743 1
|
机器学习/深度学习 传感器 算法
matlab改进鲸鱼算法GSWOA 基准函数对比与检验
matlab改进鲸鱼算法GSWOA 基准函数对比与检验
qnx下手动修改时间指令
qnx下手动修改时间指令
603 0
|
网络安全 数据安全/隐私保护 网络协议
2024年广东省网络系统管理样题第4套网络搭建部分
2024年广东省网络系统管理样题第4套网络搭建部分
2024年广东省网络系统管理样题第4套网络搭建部分
|
存储 数据库 虚拟化
无缝过渡:企业级服务器迁移的策略与最佳实践
【10月更文挑战第4天】随着企业数字化转型的加速,服务器迁移成为企业IT基础设施升级的重要环节。本文从架构与规划的视角,探讨了企业级服务器迁移的策略与最佳实践,旨在帮助企业实现无缝过渡,降低迁移风险,提高迁移效率。
950 4
手机号段查询城市免费API接口教程
此接口用于根据手机号段查询相关信息,包括城市、运营商、区号等。支持POST和GET请求,需提供用户ID、KEY及手机号段前7位作为参数。返回数据包含状态码、信息提示及详细归属信息。示例请求地址:https://cn.apihz.cn/api/ip/haoduan.php?id=88888888&key=88888888&numbers=1321993。接口免费,建议使用个人ID与KEY以独享调用频次。
|
Web App开发 前端开发 Android开发
svg图标无法修改颜色的解决方案
svg图标无法修改颜色的解决方案
|
设计模式 Java
Java“不能转换的类型”解决
在Java编程中,“不能转换的类型”错误通常出现在尝试将一个对象强制转换为不兼容的类型时。解决此问题的方法包括确保类型间存在继承关系、使用泛型或适当的设计模式来避免不安全的类型转换。
1544 7