首页 > 其他分享 >鸿蒙ArkTS之装饰器(一)

鸿蒙ArkTS之装饰器(一)

时间:2023-01-10 23:11:47浏览次数:72  
标签:ArkTS struct 鸿蒙 State UI 组件 Link 装饰

以下内容基于HarmonyOS 3.1 Developer Preview (API9)版本,虚拟机测试可以兼容API8

参考:鸿蒙开发者官网的文档

ArkTS采用装饰器标注对象的功能。

基础UI组件结构

每个UI组件需要定义为@Component struct对象,其内部必须包含一个且只能包含一个build(){}函数,用于绘制UI;struct之内、build()函数之外的地方用于存放数据。
@Component struct SampleUIComponent { // data build() { // ui } }

基本UI装饰器@Entry、@Component

@Entry

装饰struct,页面的入口

@Component

装饰struct,表示该struct具有基于组件的能力

@State

当该数据被修改时,所在组件的build()方法会被重新调用,进而重绘所在的UI。该装饰器的作用范围仅限于其所在的UI内部

@Prop

该组件继承了@State的基本功能,同时,又有两个新的特点:

  1. 只能被其父控件的@State变量初始化(假设为a)。
  2. 与其父组件建立其单向联系:监其听父组件中的变量a,当a的值发生变化时,该@Prop也会同步变化,进而重绘其所在控件的UI。

与@Prop不同的是,@Link会与其父控件中对应的@State变化建立双向联系,即当子组件中的@Link对象的之发生变化时,其父组件中对应的@State变量也会随之变化,这个时候父子UI都会重绘。

三个装饰器的相同点
  1. 会引起ui重绘
  2. 内部私有
三个装饰器的不同点
不同点 @State @Prop @Link
装饰内容 基本数据类型,类,数组 基本数据类型 基本数据类型,类,数组
关联 不与其他控件关联 父@State -> 子@Prop 单向关联 父@State <-> 子@Link 双向关联
初始化时机 声明时 创建组件时由参数传入 创建组件时由参数传入

标签:ArkTS,struct,鸿蒙,State,UI,组件,Link,装饰
From: https://www.cnblogs.com/lizhenxin/p/17041627.html

相关文章

  • Python中高阶函数与装饰器教程
    1高阶函数1.1数学概念回顾下数学知识:y=f(x)这是最开始接触的普通函数y=g(f(x))这个就是我们接触到的高阶函数在数学和计算机科学中,高阶函数至少应当是满足下面一......
  • python装饰器
    python装饰器--开放封闭原则知识点回顾#*args**kwargsdefwrapper(*args,**kwargs):#接受(形参)args=(1,2,3)kwargs={'a':1,'b':2}index(*args,**kwargs) #......
  • 09.(结构型模式)java设计模式之装饰器模式
    一、什么是装饰器模式简介:也叫包装设计模式,属于结构型模式,它是作为现有的类的一个包装,允许向一个现有的对象添加新的功能,同时又不改变其结构。给对象增加功能,一般两种......
  • Python @装饰器函数--检测函数运行时间
    importtime#导入time包 """构件计时函数"""deftimer(xiangca):  deffn2(*args,**kwargs):    f=time.time()    result=xiangca(*args,*......
  • 当github双因子认证遇到鸿蒙手机
    国内手机号,收不到github的短信了,也不能再次修改HTML来添加国内的手机号,来激活Github的双因子认证。我的手机是鸿蒙系统,所以 MicrosoftAuthenticator 也不能直接使用。......
  • CSS - 字体属性 设置字体,大小,粗细,类型,行高,复合属性与文本属性 设置文本颜色,对齐方式,装
    1.设置字体font-family:Arial,"MicrosoftYahei";Windows默认支持的字体:"MicrosoftYahei",SimSun,Arial,Tahoma,Verdana设置字体的时候,先英后中,保证中英字体兼容到。尽......
  • 装饰器
    https://blog.csdn.net/Hardworking666/article/details/111996951装饰器:概括地讲,装饰器的作用就是在不修改被装饰对象源代码和调用方式的前提下为被装饰对象添加额外的......
  • Hi3861鸿蒙物联网项目实战:智能温度计
    华清远见FS-Hi3861开发套件,支持HarmonyOS3.0系统。开发板主控Hi3861芯片内置WiFi功能,开发板板载资源丰富,包括传感器、执行器、NFC、显示屏等,同时还配套丰富的拓展模块。开......
  • 洁净工程实验室-净化装饰工程
    洁净工程实验室-净化装饰工程1、彩钢板壁板50mm厚岩棉彩钢板、容重>120kg/m³,钢板厚度0.5mm。2、彩钢板顶板50mm厚硫氧镁夹芯彩钢板,钢板厚度0.5mm。......
  • 【小源笔记】第七期 | 鸿蒙解决DevEco Studio无法识别设备问题
    前言笔者最近几个月遇到了DevEcoStudio开发工具无法识别设备的问题,于是只能使用hdc_std工具(以下统称hdc)通过命令行的方式安装,这给我带来了开发上的不便就在早上,笔者发现......