-
一、创建自定义组件在ArkUI中,UI显示的内容均为组件,由框架直接提供的称为系统组件,由开发者定义的称为自定义组件。在进行 UI 界面开发时,通常不是简单的将系统组件进行组合使用,而是需要考虑代码可复用性、业务逻辑与UI分离,后续版本演进等因素。因此,将UI和部分业务逻辑封装成自定义组件是不可或缺的能力。自定义组件具有以下特点:● 可组合:允许开发者组合使用系统组件、及其属性和方法。● 可重用:自定义组件可以被其他组件重用,并作为不同的实例在不同的父组件或容器中使用。● 数据驱动UI更新:通过状态变量的改变,来驱动UI的刷新。以下示例展示了自定义组件的基本用法。@Componentstruct HelloComponent { @State message: string = 'Hello, World!'; build() { // HelloComponent自定义组件组合系统组件Row和Text Row() { Text(this.message) .onClick(() => { // 状态变量message的改变驱动UI刷新,UI从'Hello, World!'刷新为'Hello, ArkUI!' this.message = 'Hello, ArkUI!'; }) } }}HelloComponent可以在其他自定义组件中的build()函数中多次创建,实现自定义组件的重用。class HelloComponentParam { message: string = ""}@Entry@Componentstruct ParentComponent { param: HelloComponentParam = { message: 'Hello, World!' } build() { Column() { Text('ArkUI message') HelloComponent(param); Divider() HelloComponent(param); } }}要完全理解上面的示例,需要了解自定义组件的以下概念定义,本文将在后面的小节中介绍: ● 自定义组件的基本结构 ● 成员函数/变量 ● 自定义组件的参数规定 ● build()函数 ● 自定义组件通用样式自定义组件的基本结构● struct:自定义组件基于struct实现,struct + 自定义组件名 + {...}的组合构成自定义组件,不能有继承关系。对于struct的实例化,可以省略new。说明:自定义组件名、类名、函数名不能和系统组件名相同。● @Component:@Component装饰器仅能装饰struct关键字声明的数据结构。struct被@Component装饰后具备组件化的能力,需要实现build方法描述UI,一个struct只能被一个@Component装饰。说明:从API version 9开始,该装饰器支持在ArkTS卡片中使用。@Componentstruct MyComponent {}● build()函数:build()函数用于定义自定义组件的声明式UI描述,自定义组件必须定义build()函数。@Componentstruct MyComponent { build() { }} ● @Entry:@Entry装饰的自定义组件将作为UI页面的入口。在单个UI页面中,最多可以使用@Entry装饰一个自定义组件。@Entry可以接受一个可选的LocalStorage的参数。说明:从API version 9开始,该装饰器支持在ArkTS卡片中使用。从API version 10开始,@Entry可以接受一个可选的LocalStorage的参数或者一个可选的EntryOptions参数。@Entry@Componentstruct MyComponent {}EntryOptions10+命名路由跳转选项。名称类型必填说明routeNamestring否表示作为命名路由页面的名字。storageLocalStorage否页面级的UI状态存储。@Entry({ routeName : 'myPage' })@Componentstruct MyComponent {}● @Reusable:@Reusable装饰的自定义组件具备可复用能力说明:从API version 10开始,该装饰器支持在ArkTS卡片中使用。@Reusable@Componentstruct MyComponent {}原文链接:https://ost.51cto.com/posts/26750#24read
-
使用CodeArts快速搭建项目本文基于CodeArts内置代码仓库,介绍如何使用CodeArts完成项目的开发、构建与部署,实现持续交付。本文在构建部署时会使用到ECS,可以提前购买首先需要订阅CodeArts产品服务,然后进入首页,选择新建项目选择Scrum模板,填入项目名称新建项目的工作空间后,选择代码托管,新建仓库,这里仅作为演示,所以选择按照模板进行新建,选择java web Demo新建配置代码仓库名称为Demo编译构建进入编译构建页面,因为选的模板,这里在编译构建上也生成了一个名为Demo-cloudbuild模板这里使用的代码仓库模板关联的内置任务,但是在实际开发中新建构建任务需要按照自己的需求进行自定义构建,新建构建任务的具体解释可以参考官方文档新建构建任务_编译构建 CodeArts Build_用户指南_新建任务相关操作_华为云 (huaweicloud.com)这里使用模板可以直接执行编译构建,单机箭头到这里编译构建完成单击导航栏“制品仓库 > 软件发布库”,进入软件发布库。在与项目名称同名的仓库中,依次进入与构建任务同名的文件夹、与构建编号同名的文件夹,即可找到生成的软件包“demoapp.jar”。
-
活动原帖:【HCSD】CodeArts Build实战训练营-0基础玩转编译构建感谢各位小伙伴的参与,获奖公示来啦~~~请务必在9月27日之前填写问卷提交奖品收件地址信息,逾期视为放弃领奖。>>点这里,填问卷<<恭喜以下同学获奖!实践体验有礼本次获奖公示期(9月18日-9月27日),在公示期内,若对获奖存有异议请反馈至活动群小助手,公示期结束后,获奖公告生效,实物奖品预计在获奖公告生效后的25个工作日内完成快递发放。如有疑问,请联系活动小助手
-
本地环境中执行脚本命令没有问题,但使用上传的swar公共镜像去执行就会提示报错
-
并没有进行多次编译,第一次编译就会出这种提示,而且是编译了有一会了,再出这个提示。如下图
-
"cmake.configureSettings": { "CMAKE_TOOLCHAIN_FILE": "D:/vcpkg/scripts/buildsystems/vcpkg.cmake", "VCPKG_TARGET_TRIPLET": "x64-windows" }这个是vscode里面的,使用到vcpkg,codeart有关于cmake.configureSetting对应的选项吗
-
华为云编译构建(CodeArts Build)基于云端大规模并发加速,为客户提供高速、低成本、配置简单的混合语言构建能力,帮助客户缩短构建时间,提升构建效率。本文将给各位开发者带来华为云CodeArts Pipeline的手把手初级教学,让没有接触过的开发者能够轻松上手体验。【操作步骤】体验准备:注册华为云账号并实名认证1.注册登录华为云账号请点击下方链接注册登录华为云账号cid:link_0选择用手机号和验证码注册登录2.注册登录成功后,免费开通基础版,取消自动续费-点击立即开通3.显示开通成功,刷新界面即可使用服务 快速创建CodeArts Build的项目1 新建项目点击进入鼠标移动到“项目模板”中的“Scrum”,点击“选用” 点击“确定”完成项目的创建 至此项目CodeArts Build项目创建成功。2 新建代码仓在新页面中点击左侧导航栏中“代码”,然后点击“代码托管”,进入代码托管页面。 在代码托管页面点击“普通新建”右侧的下拉按钮,选择“按模板新建”,进入按模板新建页面 在按模板新建页面搜索框输入“java web”点击回车进行搜索,点击搜索结果中的“Java Web Demo”项目,然后点击“下一步” 输入代码仓库名称“JavaWeb”后点击“确定”,成功创建后会跳转至代码仓页面,至此完成Java Web项目的代码仓的创建。3 启动构建任务点击左侧“持续交付”下的“编译构建”,并进入任务的“编辑”界面 在“参数设置”中,去掉“运行时设置”。 选择上方的“执行计划”,打开“定时执行”,并且都勾选上,可体验编译构建定时任务最后点击右上方的“保存并执行”即可启动构建任务。 以上就是简单的新手CodeArts Build指南,更多功能及指导可访问官网相关产品的帮助文档进行学习。成长地图_编译构建 CodeArts Build_华为云在体验过程中有任何问题欢迎进入开发者论坛发帖与各位开发者进行讨论。华为云开发者社区论坛
-
每一个剑客都需要一把趁手的利器,初学者如何利用编译软件?只需五分钟,带你体验软件开发的效率。请注册华为云账号并完成实名认证,实验过程中请使用Chrome浏览器完成相关操作。华为云账号注册步骤请参考:cid:link_2实名认证操作步骤请参考:cid:link_3活动入口:HCSD-CodeArts Build实战训练营-0基础玩转编译构建【编译构建训练营结业考试】实践考试打卡贴实践是检验真才实学的最佳方式为检查编译构建入门训练营和进阶实战营学习成果本次编译构建分为入门考试+产品实践体验本帖为实践考试打卡帖让我们来看一下考核的具体内容▶考核时间:即日起-2023年7月31日▶打卡方式:晒出完成入门考试获得结营证书或编译构建实践操作完成截图进入Build初阶入门测试进阶玩家戳我 实践编译构建(CodeArts Build)实操手册
-
活动入口:HCSD-CodeArts Build实战训练营-0基础玩转编译构建【编译构建训练营结业考试】实践考试打卡贴实践是检验真才实学的最佳方式为检查编译构建入门训练营和进阶实战营学习成果本次编译构建分为入门考试+产品实践体验本帖为实践考试打卡帖让我们来看一下考核的具体内容▶考核时间:即日起-2023年7月31日▶打卡方式:晒出完成入门考试获得结营证书或编译构建实践操作完成截图进入Build初阶入门测试进阶玩家戳我 实践编译构建(CodeArts Build)实操手册华为云PaaS活动推荐官 发表于2023-06-15 09:50:14 2023-06-15 09:50:14 最后回复 华为云PaaS活动推荐官 2023-09-18 14:22:26172 12
-
请注册华为云账号并完成实名认证,实验过程中请使用Chrome浏览器完成相关操作。华为云账号注册步骤请参考:cid:link_0实名认证操作步骤请参考:cid:link_1进入活动一、资源准备:免费开通CodeArts Build套餐1、戳我进入CodeArtsBuild 首页 点击“立即使用”;2、点击“免费开通5人版”;3、进行套餐信息确认,注意“取消自动续费”,勾选“阅读并同意声明”,点击“确认开通”4、至此,套餐购买成功,即刻开启体验吧!二、快速创建CodeArts Build的项目1 新建项目点击进入鼠标移动到“项目模板”中的“Scrum”,点击“选用”点击“确定”完成项目的创建至此项目CodeArts Build项目创建成功。2 新建代码仓在新页面中点击左侧导航栏中“代码”,然后点击“代码托管”,进入代码托管页面。在代码托管页面点击“普通新建”右侧的下拉按钮,选择“按模板新建”,进入按模板新建页面在按模板新建页面搜索框输入“java web”点击回车进行搜索,点击搜索结果中的“Java Web Demo”项目,然后点击“下一步”输入代码仓库名称“JavaWeb”后点击“确定”,成功创建后会跳转至代码仓页面,至此完成Java Web项目的代码仓的创建。3 启动构建任务点击左侧“持续交付”下的“编译构建”,并进入任务的“编辑”界面在“参数设置”中,去掉“运行时设置”。选择上方的“执行计划”,打开“定时执行”,并且都勾选上,可体验编译构建定时任务最后点击右上方的“保存并执行”即可启动构建任务。
-
活动入口:HCSD-CodeArts Build实战训练营-0基础玩转编译构建【编译构建训练营结业考试】实践考试打卡贴实践是检验真才实学的最佳方式为检查编译构建入门训练营和进阶实战营学习成果本次编译构建分为入门考试+产品实践体验本帖为实践考试打卡帖让我们来看一下考核的具体内容▶考核时间:即日起-2023年7月31日▶打卡方式:晒出完成入门考试获得结营证书或编译构建实践操作完成截图1、点击进入Build初阶入门测试2、进阶玩家戳我 实践编译构建(CodeArts Build)【实操手册】 cid:link_3
-
活动入口:HCSD-CodeArts Build实战训练营-0基础玩转编译构建【编译构建训练营结业考试】实践考试打卡贴实践是检验真才实学的最佳方式为检查编译构建入门训练营和进阶实战营学习成果本次编译构建分为入门考试+产品实践体验本帖为实践考试打卡帖让我们来看一下考核的具体内容▶考核时间:即日起-2023年7月31日▶打卡方式:晒出完成入门考试获得结营证书或编译构建实践操作完成截图进入Build初阶入门测试进阶玩家戳我 实践编译构建(CodeArts Build)实操手册
-
flang无法在associate 中使用默认构造函数program main implicit none type f64x2 real(8)::a,b end type f64x2 type(f64x2)::x x=f64x2(1.d0,2.d0) ! Ok associate(y=>f64x2(1.d0,2.d0)) !error write(*,*)y end associateend program mainF90-S-0000-Internal compiler error. mkexpr1: bad id 14 (1.f90: 8)F90-W-0000-Internal compiler error. rank_of:DT_NONE 0 (1.f90: 8)F90-S-0000-Internal compiler error. bad dtype 0 (1.f90: 9)F90-S-0000-Internal compiler error. size_of: bad dtype 0 (1.f90: 9) 0 inform, 1 warnings, 3 severes, 0 fatal for main
-
当我们cloudbuild构建执行机不满足客户需求时,可以选择自定义执行机方式。具体配置方法请参考文档:如何添加自定义执行机下面我来说一下它们的区别目前容器、虚拟机和MAC三种类型。区别如下:容器:执行任务时将拉起一个docker容器,任务在容器中运行。虚拟机:执行任务时,任务会在虚拟机上运行。MAC:注册代理的时候需要在MAC主机上执行注册代理命令。通俗来讲:选虚拟机,客户本地机器里面有啥,就能用啥。选容器,是拿客户的机器当容器,构建的时候,各种工具,版本,还是用的我们构建的。
-
场景:在制作镜像是如何推送到其他租户步骤:1.点击管理IAM账号 2.跳转到服务扩展点页面新建服务扩展点,类型选择IAM其中Access Key Id和Secret Access Key到IAM的我的凭证页面获取3.在构建步骤页面选择其他租户即可刷新出来,选择对应的租户即可。
上滑加载中
推荐直播
-
OpenHarmony应用开发之网络数据请求与数据解析
2025/01/16 周四 19:00-20:30
华为开发者布道师、南京师范大学泰州学院副教授,硕士研究生导师,开放原子教育银牌认证讲师
科技浪潮中,鸿蒙生态强势崛起,OpenHarmony开启智能终端无限可能。当下,其原生应用开发适配潜力巨大,终端设备已广泛融入生活各场景,从家居到办公、穿戴至车载。 现在,机会敲门!我们的直播聚焦OpenHarmony关键的网络数据请求与解析,抛开晦涩理论,用真实案例带你掌握数据访问接口,轻松应对复杂网络请求、精准解析Json与Xml数据。参与直播,为开发鸿蒙App夯实基础,抢占科技新高地,别错过!
回顾中 -
Ascend C高层API设计原理与实现系列
2025/01/17 周五 15:30-17:00
Ascend C 技术专家
以LayerNorm算子开发为例,讲解开箱即用的Ascend C高层API
回顾中
热门标签