HarmonyOS ArkTS基础知识

news2024/11/29 7:53:24

概述

上一节,学习了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.coloradmin.cn/o/1176737.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023_11_6 每日半小时 SQL 刷题

文章目录 1. 查询所有列题目描述SQL 语句编写 2. 查询多列题目描述SQL 语句编写 3. 查询结果去重题目描述SQL 语句编写 4. 查询结果限制返回行数题目描述SQL 语句编写 5. 将查询后的列重新命名题目描述SQL 语句编写 语法小总结 1. 查询所有列 题目链接:SQL1 查询所…

SAP-MM-批量扩充视图

MM50 可以通过这个程序批量维护或查看这个物料没有维护的视图,进行扩充。

weblogic弱口令漏洞复现

文章目录 一、漏洞特征1.可以直接获取passwd文件2.可以直接获取密文文件3.可以直接获取密钥文件4.解密密码5.登录后台 二、命令执行复现1.部署webshell2.Shell命令执行3.jsp一句话木马 一、漏洞特征 1.可以直接获取passwd文件 http://192.168.232.131:7001/hello/file.jsp?p…

找茬小游戏源码系统 无聊就来玩一玩 带完整的搭建教程

找茬小游戏是一种经典的休闲游戏,它以找出不同之处为核心玩法,锻炼玩家的观察力和反应能力。随着互联网技术的发展和普及,越来越多的游戏开发者开始尝试开发这种简单有趣的游戏。下面源码小编就来给大家介绍一下这款源码系统的搭建教程以及核…

哈夫曼编码与解码,基于Python实现

from itertools import count from collections import Counter from heapq import heapify, heappush, heappopdef huffman_tree(s):# 统计每个字符出现的次数s Counter(s) # 计算可迭代序列中元素的数量,返回字典类型数据c…

2023年09月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 有一组数据存在列表中,things[“桌子”,“椅子”,“茶几”,“沙发”,“西瓜”,“苹果”,“草莓”,“香蕉”]&#xff0…

Python如何实现查看WiFi密码?

由于最近公司加强对无线安全的管理,wifi密码从以前的12345678,变成复杂难记的一串,导致我时常忘记WIFI密码,而遭受同事的“毒打”。由于我不是那种喜欢打扰同事认真工作的人,于是,我决定用python来试试&…

【Spring】注解

文章目录 1. 前言2.注解开发的准备工作3. IOC相关注解DI相关注解 4. DI相关注解4.1 Value4.2 AutoWired4.3 Qualifier 5. xml配置文件相关注解5.1 Configuration5.2 ComponensScan 6.Bean注解7. PropertySource 1. 前言 Spring支持使用注解代替xml配置,注解开发可以简化配置. …

如何备战秋季招聘:从规划到面试的全方位攻略

如何备战秋季招聘:从规划到面试的全方位攻略 随着秋天的到来,秋季招聘也进入了高峰期。对于即将毕业的同学们来说,抓住这个黄金时期,找到一份满意的工作至关重要。本文将为你提供一份全面的秋季招聘攻略,从规划到面试&…

<微信小程序>《微信小程序开发笔记》(二)

《微信小程序开发笔记》(二) 1 程序开发1.1 原则(自己感悟)1.2 架构1.3 开发模式 2 建立项目3 微信代码构成3.1 JSON 配置文件3.2 WXML 模板文件3.3 WXSS 样式文件3.4 JS 脚本逻辑文件 1 程序开发 1.1 原则(自己感悟&…

吴翰清《计算》重磅来袭,为了可计算的价值,写给所有人!

《计算》终于出版了 计算,为了可计算的价值 撰文 | 吴翰清 三年前在新冠疫情大爆发期间,当我决心动笔写下第一行文字时,从来没想到过写作《计算》的工程会如此之大。 它横跨了人类文明三千年的数学史和计算机科学史,从数字的起…

【JMeter】定时器分类以及场景介绍

1. 定时器分类 固定定时器 作用:请求之间设置等待时间应用场景:查询商品列表后,去查看列表商品详情页。针对商品列表数据量比较大的,响应时间会比较长,就需要设置等待时间然后去查看商详 2.定时器的作用域&#xff1…

《005.SpringBoot+vue之学生选课管理系统01》

《005.SpringBootvue之学生选课管理系统01》 项目简介 [1]本系统涉及到的技术主要如下: 推荐环境配置:DEA jdk1.8 Maven MySQL 前后端分离; 后台:SpringBootMybatis; 前台:vueElementUI; [2]功能模块展示: 管理端 1…

渗透测试学习day1

文章目录 学习平台Starting Point靶机:Meow连接vpn创建靶机 解题过程Task 1Task 2Task 3Task 4Task 5Task 6Task 7Task 8 总结 学习平台 hackthebox Starting Point 靶机:Meow 难度:very easy 连接vpn创建靶机 步骤如下 打开linux虚拟…

开发环境eclipse的安装与配置详细教程(包括UML插件 如何汉化 JDK 代码补全等)

Eclipse开发环境的安装与配置 1.Eclipse安装与配置 1.将JDK与Eclipse这两个软件安装包放在一个文件夹下,方便之后安装使用。 2.安装JDK 在D:LeStoreDownload\java文件夹下另外新建三个文件夹分别命名为java、jdk和eclipse(分别用于Java、j…

NFTScan | 10.30~11.05 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期:2023.10.30~ 2023.11.05 NFT Hot News 01/ BAYC 系列 NFT 地板价回升至 30 ETH 10 月 30 日,据数据显示,Bored Ape Yacht Club(BAYC)系列 …

高速串行总线——SATA

SATA简介 SATA的全称是Serial Advanced Technology Attachment(串行高级技术附件,一种基于行业标准的串行硬件驱动器接口),它是一种电脑总线,主要功能是用作主板和大量存储设备(如硬盘及光盘驱动器)之间的数据传输 SA…

没有MES管理系统,先用数据采集设备能有用吗

在当前的数字化时代,企业纷纷意识到了数字化转型的重要性。数据被誉为新型生产要素,对于企业的运营和决策具有至关重要的作用。在数字化转型的过程中,许多企业面临着一个共同的问题:如何获取所需的数据? 有两家企业在…

实力控场,自成焦点!科士达工商业储能新品亮相上海SNEC储能展

11月1日,第八届SNEC ES 国际储能展在上海新国际博览中心盛大开幕。展会现场,科士达携工商业储能新品KAC120DS-BC233DE重磅亮相,该产品是继KAC50DP-BC100DE之后,科士达推出的又一重量级储能力作,完美覆盖用户侧工商业全…

Filter 和 Listener

Filter 表示过滤器。是JavaWeb三大组件(Servlet、Filter、Listener)之一。 过滤器可以把对资源的请求 拦截 下来。浏览器可以访问服务器上所有的资源,而在访问到这些资源之前可以使用过滤器拦截下来,也就是说在访问资源之前会先经…