相信大家都已经把Hello World成功跑起来了,下面我们熟悉一下项目目录的结构都由什么组成,具体的分工是什么。
ArkTS工程目录结构(Stage模型)
ArkTS Stage 模型支持 API Version 8 及以上,其工程目录结构如下图所示:
- AppScope > app.json5:应用的全局配置信息。
- entry:应用/服务模块,编译构建生成一个 HAP。
-
- src > main > ets:用于存放 ArkTS 源码。
-
- src > main > ets > entryability:应用/服务的入口。
-
- src > main > ets > pages:应用/服务包含的页面。
-
- src > main > resources:用于存放应用/服务所用到的资源文件,如图形、多 媒体、字符串、布局文件等。
- src > main > module.json5:Stage 模型模块配置文件,主要包含 HAP 的配置 信息、应用在具体设备上的配置信息以及应用的全局配置信息。
- entry > build-profile.json5:当前的模块信息、编译信息配置项,包括 buildOption、targets 配置等。
- entry > hvigorfile.ts:模块级编译构建任务脚本。
- entry >oh-package.json5:配置三方包声明文件的入口及包名。
- oh_modules:用于存放三方库依赖信息,包含应用/服务所依赖的第三方库文件。 关于原 npm 工程适配 OHPM 包管理器操作,请参考 1.3.6.1 历史工程适配 OHPM 包管理。
- build-profile.json5:应用级配置信息,包括签名、产品配置等。
- hvigorfile.ts:应用级编译构建任务脚本。
装饰器
熟悉完工程目录,我们现在打开entry-src-main-ets-pages-Index.ets会看到这样一个景象
这就是我们昨天运行起来的项目,怎么样,熟不熟悉,是不是看起来跟flutter一毛一样。但是还有些小变化,比如多了一些注解,我们一样一样了解这些注解是干嘛的。
这里我们简称叫装饰器
- @Entry :@Entry装饰的自定义组件将作为UI页面的入口。在单个UI页面中,最多可以使用@Entry装饰一个自定义组件。
- @Compont:@Component装饰器仅能装饰struct关键字声明的数据结构。struct被@Component装饰后具备组件化的能力,需要实现build方法描述UI,一个struct只能被一个@Component装饰。
- @State:@State装饰的变量当内容发生变化时会自动刷新绑定的UI
接下来我们写个简单的小例子,在文字下方添加一个按钮,点击按钮时切换展示的文字
代码可见,在Text组件下方添加了一个Button按钮,但点击时改变了message的值,因为message添加了@State装饰,当值发生改变时可自动刷新UI