当前位置: 首页 > news >正文

HarmonyOS ArkTS基础知识

概述

上一节,学习了TypeScript的基础语法,而在鸿蒙开发当中,有基于自己的编程语言,便是ArkTS。它是一种声明式UI的编程范式的语言,开发框架如下图所示:

根据框架图,分析,我将它大致分为4层:

上层为UI范式,在早期的Web开发中,我们知道(HTML,CSS,JS)为三大基石,每一个部分都要学习,并且很杂。后进入移动互联网时代后,PC的页面也渐渐的往移动设备倾斜。而各大厂牌也推出了相应的前端开发框架,比如Vue,FaceBook的React Native,谷歌的Flutter等,在跨平台和前端页面的开发中,都有一定的应用。在ArkTS中,保留了前端开发的UI范式,可能这也是鸿蒙基于TS的初衷吧,能让纯前端开发者更好的衔接鸿蒙,降低门槛。

进入中层,是方舟编译器和后端引擎,渲染引擎,简单来说,上层面向开发者,代表友好,而编译器和引擎的好坏,就是效率。

再往下,是平台适配和桥接层,类似于跨语言的支持,跨平台,多设备的可移植性,扩展性。

最后离不开底层操作系统的支持。

练习

进去ArkTS的世界,我们在DevEco中新建项目,在entry-src-main-etc-pages-index.ets里编写如下示例(无须编译,也跑不通),来进行代码分析。


@Component
struct ListItemComponent{@State isChange:boolean = false;          //装饰器build(){                                  //UI描述Row(){                                  //内置组件Text(this.name).width(ItemStyle.LAYOUT_WEIGHT_CENTER).fontSize(FontSize.MIDDlE)           //属性方法Text(this.vote).width(ItemStyle.LAYOUT_WEIGHT_CENTER).fontSize(FontSize.SMALL)}.height(ItemStyle.BAR_HEIGHT).width(WEIGHT).onClick(()=>{                       //事件方法this.isChange = !this.isChange;})}
}

解析如下,可以看到

@Entry.       默认入口装饰器.     

@Component 是常用的装饰器,代表自定义的组件化能力

build().        UI描述

Text().         内置组件:分为基础组件Text,Button,Image,InputText

                                     容器组件Row,Column,Stack,List

onClick().     事件方法

width().         属性方法

 

组件的生命周期函数

aboutToAppear:由自定义组件到build()之前触发,可以用于数据的初始化操作。

aboutToDisappear:自定义组件销毁前触发

  aboutToAppear(){hilog.info(0x0000, `TAG`,  'aboutToAppear');}aboutToDisappear(){}

由Entry修饰的默认入口组件生命周期

onPageShow:组件显示时触发

onBackPress:按下系统返回键触发

onPageHide:按下Home进入后台触发

  onPageShow(){}onBackPress(){}onPageHide(){}

总结

完整的组件说明,可参考下述官网链接:

文档中心

http://www.lryc.cn/news/219953.html

相关文章:

  • 嵌入式课后习题第一章解答
  • postMessage
  • 挑战100天 AI In LeetCode Day01(1)
  • 大数据疫情分析及可视化系统 计算机竞赛
  • uniapp调起拨打手机号
  • nacos配置中心docker部署、配置及 goLang 集成使用
  • PubDef:使用公共模型防御迁移攻击
  • 【QT5之QFtp模块】编译及使用
  • 数据结构 编程1年新手视角的平衡二叉树AVL从C与C++实现②
  • 代码随想录二刷Day 59
  • 由一个自动化脚本运维展开的思考
  • STM32F103C8T6第二天:按键点灯轮询法和中断法、RCC、电动车报警器(振动传感器、继电器、喇叭、433M无线接收发射模块)
  • 路由器基础(九):防火墙基础
  • 免费(daoban)gpt,同时去除广告
  • 如何使用Plex在Windows系统上搭建一个全能私人媒体影音站点
  • vue如何实现视频全屏切换
  • Shopee买家通系统一款全自动操作虾皮买家号的软件
  • 希亦内衣洗衣机和小米哪个品牌好?内衣洗衣机横评对比
  • 下载安装各种版本的Vscode以及解决VScode官网下载慢的问题
  • 双十一电视盒子哪个牌子好?测评工作室整理口碑电视盒子排名
  • 11.1总结
  • Proteus仿真--1602LCD显示电话拨号键盘按键实验(仿真文件+程序)
  • 如何防范AI诈骗
  • ICCV2023 Tracking paper汇总(一)(多目标跟随、单目标跟随等)
  • 【PG】PostgreSQL查看与修改参数
  • openGauss学习笔记-115 openGauss 数据库管理-设置安全策略-设置密码安全策略
  • 如何更好地理解甜葡萄酒和干葡萄酒的区别?
  • 基于单片机的车载太阳能板自动跟踪系统研究
  • 前端传字符串的开始时间和 结束时间,数据库时间字段是 timestamp,Java 代码如何写
  • Mac电脑录屏软件 Screen Recorder by Omi 中文最新