开天辟地 HarmonyOS(鸿蒙) - 开发基础: ArkUI 基础

源码 https://github.com/webabcd/HarmonyDemo
作者 webabcd

开天辟地 HarmonyOS(鸿蒙) - 开发基础: ArkUI 基础

示例如下:

pages\basic\Hello.ets

/** ArkUI 基础** ArkUI 使用的是声明式 UI(declarative UI),不是传统的命令式编程* 1、UI 的命令式编程:先实例化一个 UI 对象,然后按需求修改这个对象* 2、UI 的声明式编程:描述你需要的 UI 即可,需要修改时就重新描述* 3、类似的声明式 UI 编程框架还有 Flutter, SwiftUI, Jetpack Compose*/import { TitleBar } from '../TitleBar';
import { promptAction } from '@kit.ArkUI';// @ 开头的被称为装饰器,比如 @Entry, @Component, @State 等// @Entry 表示该自定义组件为入口组件
@Entry
// @Component 表示自定义组件
@Component
// 通过 struct 定义组件(不支持继承,请通过组合的方式来实现组件的复用以及界面的构建)
struct Hello {// 定义普通变量(声明时必须初始化)name: String = "webabcd"// @State 表示组件中的状态变量(声明时必须初始化),状态变量变化会触发相关 UI 刷新@State message: string = 'Hello World';// 定义普通函数hello(): string {return `hello: ${this.name}`}// @Builder 表示函数会返回一个或多个组件(可以在组件内部定义,也可以在全局定义)@Builder myBuilder1() {Text(this.message).fontSize(24).fontColor(Color.Orange)}// 构建 UI(在 build 内通过组件描述需要的 UI)build() {Column({ space: 20 }) {// 先 import { TitleBar } from '../TitleBar'; 就可以用 TitleBar 了// 如果之前没有 import 则可以把光标放到 TitleBar() 内然后通过快捷键 alt + enter 添加相关的 importTitleBar()Text(this.message).fontSize(16).fontColor(Color.Blue)/** Button 是一个按钮组件(构造 UI 组件的时候不用 new)*   组件参数有啥,可通过快捷键 ctrl + p 查看,比如 Button 的参数有 label 和 options*   本例的 options 参数是一个 ButtonOptions 接口,这个接口里有什么参数,可以在 {} 中通过快捷键 ctrl + alt + space 查看*   其中的 width(), height() 等是属性方法,支持链式调用*   其中的 onClick() 等是事件方法,支持链式调用*/Button('button', { type: ButtonType.Normal, stateEffect: true }).borderRadius(8).backgroundColor(0x317aff).width(90).height(40).onClick(() => {// 修改 @State 变量,会触发相关 UI 刷新this.message = this.hello()})// 使用组件内部 @Builder 函数中定义的组件this.myBuilder1()// 使用组件外部 @Builder 函数中定义的组件myBuilder2()// 使用 @Component 的自定义组件,并为组件传递参数MyComponent({message: "abc",// 回调函数onCallback: () => {this.message = 'MyComponent callback'}})}.width('100%').height('100%')}
}// @Builder 表示函数会返回一个或多个组件(可以在组件内部定义,也可以在全局定义)
@Builder function myBuilder2() {// 声明一个需要返回的组件,如果有复杂逻辑的话,可以在这里声明一个 @Component 装饰的自定义组件Text("myBuilder2").fontSize(24).fontColor(Color.Green)
}// 通过 @Component 定义一个自定义组件
@Component
struct MyComponent {// 组件参数,在调用此组件的时候可以传递此参数// 如果用 @Require 装饰,则代表在构造组件的时候必须要传参@Require message = ""// 定义回调函数onCallback?: () => void;build() {Button(`MyComponent ${this.message}`).onClick(() => {if (this.onCallback) {this.onCallback()}})}
}

源码 https://github.com/webabcd/HarmonyDemo
作者 webabcd

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

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

相关文章

ERP+PLM+MDM

ERP+PLM+MDM 新一代汽车数字工厂PLM+PLM+MDM集成解决方案专为汽车整车行业设计,通过整合企业业务流程和优化关键数据管理,实现了设计制造一体化。该方案以业务流程为导向,围绕整车项目研发、快速变型设计、产品配置和装配工艺设计四大业务场景,提供全面的数据管理和流程控制…

AI应用示例:用AI通过单张面部照片预测您的职业与受教育程度

AI 生成的图像 | Flux Labs AI 制作想象一下,你走进一场面试,还没开口,AI 面试官就已经根据你的脸对你做出评估。这是不是 “以貌取人 2.0”?这算是歧视吗?还是 AI 正在推动一种新的 “面相主义”(face-ism)? 最近,来自多所大学的研究人员进行了一项研究,他们声称 AI…

电脑本地部署deepseek教程

Ollama:本地大模型运行指南奇舞精选2024-04-2814,445阅读11分钟关注 智能总结 复制 重新生成 这篇文章主要介绍了本地大模型运行框架 Ollama。包括其简介、安装方法(下载安装及大模型下载)、终端对话(如显示帮助、模型信息等命令)、API 调用(generate 和 chat 两…

可能是对春节假期的一些总结

写在前面2603 字 | 总结 | 经历 | 思考 | 感触未经允许,禁止转载。 正文「我一直都应该知道,听到别人说出她的名字,我还是会心里一跳。」过年与我当初预计的完全不同。我当初的计划,春节七八天,写很多很多文章,极速推进今年年度计划的写作一项。为此还专门订阅了一个月的…

搜狗录音笔c1折腾

1.买的pdd厂家帮我整好了大部分(应该刷过固件) 2.遇到的问题就是c to c的线...它没有协商,得插电脑usb-a口上才能识别到 3.厂家提供的搜狗录音笔助手这个软件是有点小处理的不是原软件(指解锁登录,其他的没看出问题,至少软件没报毒)

task3

任务二:Smiling-Weeping-zhr/Travel-assistant 自建项目链接,有关大模型关于大模型解答旅游相关

1.4 条件分支和循环机制

程序的流程分为顺序执行、条件分支和循环三种 顺序执行是按照地址内容的顺序执行指令。 条件分支是根据条件执行任意地址的指令。 循环是指重复执行同一地址的指令。 顺序执行每执行一个指令程序计数器的值自动加1条件分支和循环中使用的跳转指令,会参照当前执行的运算结果来判…

vue3使用flv.js播放flv直播流

目前有个需求是:管理直播机有一个列表需要查看每个直播机的实时内容,所以需要在后台加这个功能。 效果:我用ffmpeg模拟推流: 如何用ffmpeg模拟推流请看我上一篇文章 网页: 如上是可以正确再网页端拉流,这个功能费了一天的时间,在这里免费分享出来。 首先安装flv.js(用n…

DeepSeep本地部署

1、浏览器搜索引擎更改 2、搜索:Ollama操作下载: 也可直接进入下载路径:https://ollama.com/download/windows ollama run deepseek-r1 本文来自博客园,作者:他还在坚持嘛,转载请注明原文链接:他还在坚持嘛 https://www.cnblogs.com/brf-test/p/18699050

Linux下使用df与du命令查看磁盘空间

1、df磁盘空间查看df可以查看一级文件夹大小、使用比例、档案系统及其挂入点。[root@oms ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/vda1 ext4 40G 35G 3.1G 92% / devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev tmp…

JOKER智能可视化平台 20250204版本更新说明

本次 JOKER 低代码平台更新涵盖了代码生成、环境变量、可视化开发工具等多个关键领域的优化与新增功能,致力于为开发者提供更高效、更安全、更便捷的开发体验。同时,服务端功能的正式发布以及核心升级,进一步增强了平台的整体性能和竞争力。 一、功能更新与优化 (一)代码生…