鸿蒙开发进阶之一文学会鸿蒙组件化项目搭建

  什么是不简单,把每一件简单的事情做好就是不简单;什么是不平凡?把每一件平凡的事情做好就是不平凡!

前言

  鸿蒙应用开发已经成为互联网新的风口,开发鸿蒙软件已经成为今年工作的核心目标。在软件开发过程中,对于复杂度较大,功能较多的软件都会采用组件化项目架构,那么对于鸿蒙应用开发是否也能实现组件化呢?本文将详细讲解HarmonyOs组件化项目搭建的全过程,带领大家实现一个组件化项目。

项目创建

  1. 首先创建一个项目工程,点击开发工具DevEco-Stdio的File 选项,选择New 然后点击Create Project
  1. 选择创建一个EmptyAbility,然后直接下一步,创建工程。
  1. 工程主要包括一个entry模块,可以理解为Android的app主模块。

公共库创建及使用

创建公共库Common组件。

  1. 在工程目录中,单机鼠标右键,选择New选项,然后在弹出的页面中选择Module。
  1. 在弹出的页面中,选择创建一个静态库Static Library。
  1. 然后点击Next,修改静态库的名称为common。
  1. 点击完成后,编译器会自动在项目的根目录的build-profile.json5文件中添加common模块。
  1. 添加项目依赖,common作为公共库,需要提供给其他模块使用,这里以entry为例,添加模块依赖,如下图所示。
  1. 至此,一个公共库common就创建完成了。

功能模块创建使用

  一个功能复杂庞大的app不仅有公共模块,还有许多子模块构建而成。创建流程如下:

  1. 在工程目录中,单机鼠标右键,选择New选项,然后在弹出的页面中选择Module。
  1. 在弹出的页面中,选择创建一个共享库Shared Library。
  1. 然后点击Next,修改静态库的名称为login。
  2. 点击完成后,编译器会自动在项目的根目录的build-profile.json5文件中添加login模块。
  1. 添加项目依赖,login作为子模块,需要被entry依赖调用,添加模块依赖,如下图所示。
  1. 到目前为止子模块也创建完成。

模块路由跳转

  前面创建分别创建了公共库和子模块,如何从主模块entry跳转到子模块login,或者子模块之间互相跳转呢?

  1. HarmonyOs在页面跳转时提供了router实现路由跳转。需要跳转的目标页面必须满足两个条件,@Entry修饰struct 和路由注册。被@Entry修饰的struct才是一个独立页面。同时需要在main_pages.json中注册路由。
  1. 在common中定义完整路径。不同子模块都会依赖公共静态库common。然后在common中定义目标页面的全路径。

全路径主要由三部分组成。分别是@bundle: 代表模版。 然后是 包名 com.cms.mmvm。最后是模块名+目标页面的全路径。

  1. 使用export关键字导出 ConstantRouter类,提供给其他模块调用。
  1. 引入ConstantRouter类,调用类中定义的路由。

总结

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

  对于新的系统,学习开发过程中肯定会有难度,所以为了方便大家学习,解决开发过程中遇到的问题。感兴趣的小伙伴可以扫码进群,互相学习,互相成长!

相关推荐
恋猫de小郭5 小时前
AI 时代,也许你的 Flutter 需要一套 Dartastic OpenTelemetry 监控
android·前端·flutter
贾伟康5 小时前
【时光清单|11】HarmonyOS ArkTS 每日语录实战:从本地仓库稳定生成首页内容
harmonyos·arkts·状态管理·arkui·本地数据
tsqtsqtsq03096 小时前
鸿蒙系统深色模式功能详解与开发适配指南
harmonyos
Kapaseker6 小时前
我为什么喜欢 Compose ?
android·kotlin
JMchen1236 小时前
【Android 性能优化实战 60 讲】03 Perfetto 现代分析利器:SQL 查询 Trace 数据,微秒级定位函数 CPU 耗时
android·sql·性能优化·实战·源码分析·perfetto·启动优化
开开心心就好6 小时前
手机精确倒计时工具悬浮窗口秒数实时显示
android·前端·javascript·jupyter·智能手机·pdf·html
墨狂之逸才6 小时前
一次 Android 工位机黑屏卡死排查:根因不是 App,而是 scrcpy 与 Rockchip 编码器的 DMA-BUF 泄漏
android·android studio
贾伟康6 小时前
【时光清单|16】HarmonyOS ArkTS 多设备布局实战:适配手机、平板和 PC/2in1 的窗口变化
harmonyos·arkts·arkui·响应式布局·多设备适配
Privasa-隐私实验室6 小时前
跨端技术选型|Flutter搭建隐私加密App,安卓与iOS双端差异适配实战
android·笔记·安全·flutter·ios·隐私安全·aes-256
limuyang213 小时前
PDF Viewer KMP(基于 chrome 的 PDFium 内核)
android·kotlin