构建第一个ArkTS之基本语法概述

在初步了解了ArkTS语言之后,我们以一个具体的示例来说明ArkTS的基本组成。如下图所示,当开发者点击按钮时,文本内容从“Hello World”变为“Hello ArkUI”。

图1 示例效果图

本示例中,ArkTS的基本组成如下所示。

图2 ArkTS的基本组成

说明

自定义变量不能与基础通用属性/事件名重复。

  • 装饰器: 用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如上述示例中@Entry、@Component和@State都是装饰器,@Component表示自定义组件,@Entry表示该自定义组件为入口组件,@State表示组件中的状态变量,状态变量变化会触发UI刷新。
  • UI描述:以声明式的方式来描述UI的结构,例如build()方法中的代码块。
  • 自定义组件:可复用的UI单元,可组合其他组件,如上述被@Component装饰的struct Hello。
  • 系统组件:ArkUI框架中默认内置的基础和容器组件,可直接被开发者调用,比如示例中的Column、Text、Divider、Button。
  • 属性方法:组件可以通过链式调用配置多项属性,如fontSize()、width()、height()、backgroundColor()等。
  • 事件方法:组件可以通过链式调用设置多个事件的响应逻辑,如跟随在Button后面的onClick()。
  • 系统组件、属性方法、事件方法具体使用可参考基于ArkTS的声明式开发范式。

除此之外,ArkTS扩展了多种语法范式来使开发更加便捷:

  • @Builder/@BuilderParam:特殊的封装UI描述的方法,细粒度的封装和复用UI描述。
  • @Extend/@Styles:扩展内置组件和封装属性样式,更灵活地组合内置组件。
  • stateStyles:多态样式,可以依据组件的内部状态的不同,设置不同样式。

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

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

相关文章

计算机网络技术-电路交换、报文交换和分组交换的介绍+区别

目录 电路交换报文交换分组交换待续、更新中 电路交换 电路交换是由交换机负责在两个通信站点之间建立一条物理专用线路。 报文交换 报文交换是以报文为单位进行存储交换的技术,指的是一次通信的全部数据(报文)按存储转发的方式实现传输。 分组交换 分组交换方…

C++ 封装

1.封装 cpp认为万事万物都可以封装 封装将属性和行为作为一个整体,表现生活中的事物。 将属性和行为加以权限控制。 语法: class 类名{ 访问权限: 属性或者行为 } //学生类 class Student { public:void setName(string name) {m_name name;}vo…

人工智能技术创业机会有哪些?

💂 个人主页: 同学来啦🤟 版权: 本文由【同学来啦】原创、在CSDN首发、需要转载请联系博主 💬 如果文章对你有帮助,欢迎关注、点赞、收藏和订阅专栏哦 文章目录 🥭 一、城市治理🍎 二、社交创新&#x1f3…

如何申请苹果个人开发者账户

1、苹果手机下载Developer APP,登录后,账户-注册-支付688 2、查看邮箱,会有邮件提醒上传身份证正反面,上传成功后会有邮件回复 3、审核时间为2天,如果没回复,及时联系客服,秒回复 https://de…

分享快速搭建鸿蒙应用的几种方式

鸿蒙今年快速发展,特别是不再兼容安卓,鸿蒙原生应用成为大家关注的重点。今天分享几个如何实现快速开发鸿蒙App的方法。 鸿蒙开发有多种开发模式:一种是使用ArkTS声明式;如果这种感觉还需要花时间学习的话,那么另一种…

为什么越来越多FP商家做独立站?独立站有什么吸引力?

如果你经常关注跨境电商领域,就会发现,近几年来越来越多的FP商家不再依赖第三方平台,而是自己做起了独立站。这是因为随着第三方平台的限制越来越多,FP商家的销售也越来越困难,例如经营成本上升、推广流量减少、甚至被…

离了个大谱 , 虚拟机莫名其妙的虚拟机网卡驱动启动不了,日志显示:failed

今天用xshell连接虚拟机时死活连不上,检查来检查去都没问题,结果居然是.... 1. 使用检查network.service 状态时: network.service - LSB: Bring up/down networkingLoaded: loaded (/etc/rc.d/init.d/network)Active: failed (Result: exit…

如何将数据(通常是张量)和模型转移到CUDA设备(即GPU)上

在PyTorch中,将模型和数据移到GPU上进行加速计算是深度学习训练过程中的一个常见步骤。这里将介绍如何将数据(通常是张量)和模型转移到CUDA设备(即GPU)上。 将模型转移到CUDA 对于PyTorch模型,你可以使用…

MySQL分库分表的方式有哪些

目录 一、为什么要分库分表 二、什么是分库分表 三、分库分表的几种方式 1.垂直拆分 2. 水平拆分 四、分库分表带来的问题 五、分库分表技术如何选型 一、为什么要分库分表 如果一个网站业务快速发展,那这个网站流量也会增加,数据的压力也会随之而…

【域适应】基于散度成分分析(SCA)的四分类任务典型方法实现

关于 SCA(scatter component analysis)是基于一种简单的几何测量,即分散,它在再现内核希尔伯特空间上进行操作。 SCA找到一种在最大化类的可分离性、最小化域之间的不匹配和最大化数据的可分离性之间进行权衡的表示;每…

“筑爱助残 快乐出游”带残疾人之家的残疾人出游活动

为拓宽残疾人的视野、增强残疾人的自信和勇气,感受外面世界的美好和多彩,帮助他们融入社会拥抱大自然,重拾美好生活的信心,营造残健互助的社会氛围。4月10日,嘉善蒲公英志愿者团队组织爱心司机开展以“筑爱助残 快乐出…

如何实现异地公网环境访问本地部署的支付宝沙箱环境调试支付SDK

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【CSS】CSS三大特性、盒子模型

目录 CSS三大特性 1、层叠性 2、继承性 3、优先级 盒子模型 1、网页布局的本质 2、盒子模型(Box Model)组成 3、边框(border) 3.1、边框的使用 3.2、表格的细线边框 3.3、边框会影响盒子实际大小 4、内边距&#xff0…

深入探索:使用C++构建顶级性能的网络服务器

在数字化浪潮的推动下,网络服务器作为信息交互的核心枢纽,其性能与稳定性直接决定了互联网应用的服务质量和用户体验。C++,作为一种兼具高效性与灵活性的编程语言,已然成为构建高性能网络服务器的首选工具。本文旨在深入剖析C++在构建顶级性能网络服务器中的关键技术、最佳…

vue2 利用网络代理axios实现开发环境前端跨域

vue2 利用网络代理axios实现前端跨域 vue.config.js 配置代理 module.exports {devServer: {proxy: {/CorsDemo: {target: http://xxxtech.net/, //需要跨域的地址changeOrigin: true,pathRewrite: {"^/CorsDemo": "/",//重写匹配的字段。把/CorsDemo转为…

通过前缀和来看golang的acm输入输出

前缀和 问题引入 package mainimport ("fmt" )func main() {var n, q, l, r intfmt.Scan(&n, &q)a : make([]int, n)ap : make([]int64, n 1)ap[0] 0for i : 0; i < n; i {fmt.Scan(&a[i])ap[i 1] ap[i] int64(a[i])}for j : 0; j < q; j {f…

AI大模型在自然语言处理中的应用:性能表现和未来趋势

引言 A. AI大模型在自然语言处理中的应用背景简介 近年来&#xff0c;随着深度学习和人工智能技术的快速发展&#xff0c;越来越多的研究人员和企业开始关注应用于自然语言处理的AI大模型。这些模型采用了深层的神经网络结构&#xff0c;具有强大的学习和处理能力&#xff0c…

创建型模式--1.单例模式【巴基速递】

1. 巴基的订单 在海贼世界中&#xff0c;巴基速递是巴基依靠手下强大的越狱犯兵力&#xff0c;组建的集团海贼派遣公司&#xff0c;它的主要业务是向世界有需要的地方输送雇佣兵&#xff08;其实是不干好事儿&#xff09;。 自从从特拉法尔加罗和路飞同盟击败了堂吉诃德家族 &…

【ArcGIS学习笔记】ArcMap打开就卡在文档加载界面好久不动,打开很慢,要好长时间

Arcmap之前用得好好&#xff0c;后来打开就卡在文档加载界面&#xff0c;然后界面就关闭了&#xff1f; - 知乎针对这一情况&#xff0c;主要有下面五种解决方法。其中&#xff0c;对于大部分用户而言&#xff0c;前两种方法大概率是可以解决问题的&#xff1b;…https://www.z…

RocketMQ的docker安装和SpringBoot的集成

1.Docker安装 1.1创建docker-compose.yml文件 version: 3.5 services:rmqnamesrv:image: foxiswho/rocketmq:servercontainer_name: rmqnamesrvports:- 9876:9876networks:rmq:aliases:- rmqnamesrvrmqbroker:image: foxiswho/rocketmq:brokercontainer_name: rmqbrokerports…