arkTS 基础知识

            

             

entry   主模块 Harmony工程模块 编译构建生成一个Hap包 程序主要入口
      --src
           --main
                 --ets:用于存放ets源码
                      --entryability:EntryAbility.ts 应用/服务的入口
                      --pages:Index.ets   应用/服务的入口UI界面开发 
                 --resources  用于存放应用/服务所用到的资源文件(图形 多媒体 字符串 布局文件)
                 --supervisual
                 --module.json5: 模块配置文件。主要包含Hap包的配置信息 应用/服务在具体在具体设备上配置信息
                                 以及应用/服务的全局配置信息

    
      --build-profile.json5:当前应用模块的信息 编译信息配置项 包括buildOption targets配置等
      --hvigorfile.ts  模块编译构建任务脚本,开发者可以自定义相关任务和代码实现
    
build-profile.json5:整个应用级配置信息 包括签名 产品配置
hvigorfile.ts  应用级编译构建任务脚本    

Ablities 分类 

FA: Fearture ability  交互页面

PA  Partice ability   负责后台业务逻辑

pack.info

二:Ability开发

  Stage模型主要有两类Ability:

 1.UIAbility开发

   负责用户界面和用户交互

2.ExtensionAbility 开发 

  负责UIAbility之外的事情,ExtensionAbility 有很多具体的类型:    

    ServiceExtensionAbility

   DataExtensionAbility

  FormExtensionAbility

...

三:ArkTS语法

  1.ArkTS的基本组成

  装饰器:    用来装饰我们的类 结构体 方法 变量 给他们赋予一个特殊的含义

        @Entry :表示一个入口组件
      @Component :表示一个自定义的组件
      @State :  装饰组件的一个状态变量  当状态变量发生改变,对调用这个状态变量的UI会重新进行渲染变更  

build(){}  :以声明的方式描述UI结构

内置组件:  默认官方提供的组件,可以直接调用 ArkUI提供的组件

             容器组件: 用来完成页面布局 Row Column 

              基础组件: 自带样式和功能的页面元素          Text 

事件方法:  onClick 

属性方法: 字体大小 宽高 颜色  

2.ArkTS的  语法 

四:基础组件

文档中心

 Column 容器

  

 Row容器 

1.Blank  

  空白填充组件 具有自动填充容器空余部分的能力, 仅在父组件Row/Column 时生效

2.Toggle

     开关按钮 isOn=true 默认打开状态

3 Button

 

4.Checkbox

 多选框组件  

5.CheckboxGroup

 多选框群组,用于控制多选框全选或者不全选状态

6.DataPanel   数据面板组件,用于将多个数据占比情况使用占比图进行展示

7. Scroll组件

线性布局中,当子组件的布局尺寸超过父组件的尺寸时,内容可以滚动。在Column或者Row外层包裹一个可滚动的容器组件Scroll实现。

8. Image

9.Text  

10.TextInput 文本输入框

 

 11.Slider  滑动条组件 

12.List 

 

五:自定义组件 

 1.自定义组件可以写在一个单独的ets 文件里

      需要加  @Component  export   关键字       

2.自定义构建函数

 (1)全局自定义构建函数

 调用:不需要加this. 调用

  RankList(Style.CONTENT_WIDTH)    

 封装: 放在类外(需要加@Builder function关键字) (每个组件都能调用)

     @Builder function   RankList(widthValue: Length){.....}

 (2)局部自定义构建函数

   调用:需要加this.调用
  this.RankList(Style.CONTENT_WIDTH)    

   封装:  在Index2类里面(不能加function关键字) (当前这个组件自己都有的 别的组件不能调用)

            @Builder   RankList(widthValue: Length){}

 

3.构建自定义组件的公共样式函数

  加关键字@Styles装饰器
 封装的全局公共样式函数(@Styles function) (封装在类外)或者 局部公共样式函数(@Style)(封装在类里面)  里面写的属性必须是所有的组件都通用具有的公共的属性   这样才能被所有的组件使用 

  调用:  

某个组件().fillScreen()

封装:

  //自定义全局公共样式函数  放在Index2类外(需要加function关键字) (每个组件都能调用)@Styles function fillScreen( ){.width('100%').height('100%').backgroundColor('#EFEFEF').padding(20)}

4.构建自定义组件的特有全局样式函数

加关键字@Extend(某个组件)装饰器

 如果你封装的  全局样式函数 里面写的属性是某个组件所独有的 那么你都不能使用@Styles了  要使用@Extend(某个组件)关键字
 表示 当前你封装的 全局样式函数里面的写的属性 是继承某个组件的。这样封装的全局样式函数 只能写成全局函数(加关键字function)
调用:

  某个组件.特有全局样式函数()

  Text('原价:¥'+this.price).priceText()

 封装:

@Extend(Text) function priceText(){.fontColor('#F36').fontSize(16)
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/295022.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Liteos移植_STM32_HAL库

0 开发环境 STM32CubeMX(HAL库)keil 5正点原子探索者STM32F4ZET6LiteOS-develop分支 1 STM32CubeMX创建工程 如果有自己的工程,直接从LiteOS源码获取开始 关于STM32CubeMX的安装,看我另一篇博客STM32CubeMX安装 工程配置 创建新工程 选择芯片【STM32F…

SwiftUI 趣谈之:绝不可能(Never)的 View!

概览 SwiftUI 的出现极大的解放了秃头码农们的生产力。SwiftUI 中众多原生和自定义视图对于我们创建精彩撩人的 App 功不可没! 不过,倘若小伙伴们略微留意过 SwiftUI 框架头文件里的源代码,就会发现里面嵌有一些奇怪 Never 类型&#xff0c…

一文掌握分布式锁:Mysql/Redis/Zookeeper实现

目录 一、项目准备spring项目数据库 二、传统锁演示超卖现象使用JVM锁解决超卖解决方案JVM失效场景 使用一个SQL解决超卖使用mysql悲观锁解决超卖使用mysql乐观锁解决超卖四种锁比较Redis乐观锁集成Redis超卖现象redis乐观锁解决超卖 三、分布式锁概述四、Redis分布式锁实现方案…

PyQt6 利用Pyinstaller打包发布程序

锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计53条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版…

物联网产品设计,聊聊设备OTA的升级

物联网产品设计部分的OTA设备固件是一个非常重要的部分,能够实现升级用户服务、保障系统安全等功能。 在迅速变化和发展的物联网市场,新的产品需求不断涌现,因此对于智能硬件设备的更新需求就变得空前高涨,设备不再像传统设备一样…

数据分析基础之《numpy(5)—合并与分割》

了解即可,用panads 一、作用 实现数据的切分和合并,将数据进行切分合并处理 二、合并 1、numpy.hstack 水平拼接 # hstack 水平拼接 a np.array((1,2,3)) b np.array((2,3,4)) np.hstack((a, b))a np.array([[1], [2], [3]]) b np.array([[2], […

20231222给NanoPC-T4(RK3399)开发板的适配原厂Android10的挖掘机方案并跑通AP6398SV

20231222给NanoPC-T4(RK3399)开发板的适配原厂Android10的挖掘机方案并跑通AP6398SV 1、简略步骤:rootrootrootroot-X99-Turbo:~/3TB/3399-android10$ cat Rockchip_Android10.0_SDK_Release.tar.gz0* > Rockchip_Android10.0_SDK_Release.tar.gz rootrootrootro…

Spring Boot3通过GraalVM生成exe执行文件

一、安装GraalVM 1、官网:https://www.graalvm.org/downloads/ 2、配置环境变量 2.1、环境变量必须使用JAVA_HOME,否则会出现问题 2.2、在系统变量配置Path,%JAVA_HOME%\bin,注意必须放在顶部第一位 2.3、配置jdk的环境变量,在P…

高级算法设计与分析(四) -- 贪心算法

系列文章目录 高级算法设计与分析(一) -- 算法引论 高级算法设计与分析(二) -- 递归与分治策略 高级算法设计与分析(三) -- 动态规划 高级算法设计与分析(四) -- 贪心算法 高级…

python/matlab将数组以彩色图片的形式展现

python: plt.imshow可以将数组的值以图片的形式展示出来,数组的值对应着不同的颜色深浅。比如一个2X2的数组,图片里的小方块也会有2X2个。 案例1结果: 案例1代码: import numpy as np import matplotlib.pyplot as pltx np.ar…

智能优化算法应用:基于变色龙算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于变色龙算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于变色龙算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.变色龙算法4.实验参数设定5.算法结果6.参考文…

k8s启动docker容器Error: Could not find or load main class ${start-class}报错

前行提要: 今天部署采集点服务(docker项目)发现报这个错误。 提出假设: 1,配置文件错误(工程需要配置的东西比较多) 之后开始一一排查,发现配置有问题,但是不是这个错误…