HarmonyOS 实战:组件化项目搭建
前言
鸿蒙应用开发已经成为互联网新的风口,开发鸿蒙软件已经成为今年工作的核心目标。在软件开发过程中,对于复杂度较大,功能较多的软件都会采用组件化项目架构,那么对于鸿蒙应用开发是否也能实现组件化呢?本文将详细讲解 HarmonyOs 组件化项目搭建的全过程,带领大家实现一个组件化项目。
项目创建
首先创建一个项目工程,点击开发工具 DevEco-Stdio 的 File 选项,选择 New 然后点击 Create Project。

选择创建一个 EmptyAbility,然后直接下一步,创建工程。

工程主要包括一个 entry 模块,可以理解为 Android 的 app 主模块。

公共库创建及使用
创建公共库 Common 组件。
在工程目录中,单机鼠标右键,选择 New 选项,然后在弹出的页面中选择 Module。

在弹出的页面中,选择创建一个静态库 Static Library。

然后点击 Next,修改静态库的名称为 common。

点击完成后,编译器会自动在项目的根目录的 build-profile.json5 文件中添加 common 模块。

添加项目依赖,common 作为公共库,需要提供给其他模块使用,这里以 entry 为例,添加模块依赖,如下图所示。

至此,一个公共库 common 就创建完成了。
功能模块创建使用
一个功能复杂庞大的 app 不仅有公共模块,还有许多子模块构建而成。创建流程如下:
在工程目录中,单机鼠标右键,选择 New 选项,然后在弹出的页面中选择 Module。

在弹出的页面中,选择创建一个共享库 Shared Library。

然后点击 Next,修改静态库的名称为 login。
点击完成后,编译器会自动在项目的根目录的 build-profile.json5 文件中添加 login 模块。

添加项目依赖,login 作为子模块,需要被 entry 依赖调用,添加模块依赖,如下图所示。

到目前为止子模块也创建完成。
模块路由跳转
前面创建分别创建了公共库和子模块,如何从主模块 entry 跳转到子模块 login,或者子模块之间互相跳转呢?
HarmonyOs 在页面跳转时提供了 router 实现路由跳转。需要跳转的目标页面必须满足两个条件,@Entry 修饰 struct 和路由注册。被 @Entry 修饰的 struct 才是一个独立页面。同时需要在 main_pages.json 中注册路由。

在 common 中定义完整路径。不同子模块都会依赖公共静态库 common。然后在 common 中定义目标页面的全路径。

全路径主要由三部分组成。分别是 @bundle: 代表模版。 然后是 包名 com.cms.mvvm。最后是模块名+目标页面的全路径。
导出 ConstantRouter 类,提供给其他模块调用。

引入 ConstantRouter 类,调用类中定义的路由。

总结
HarmonyOs 组件化的使用,有利于模块之间的解耦及大型项目的共同开发。随着鸿蒙生态的不断完善,学习鸿蒙开发势必成为新的趋势。也是广大同行新的选择。
评论