【HarmonyOS NEXT】组件化与模块化的理解

一、背景

在鸿蒙开发中,组件和模块两者是属于部分与整体的包含关系,核心是为了实现模块化拆分,组件化复用,让开发更高效,维护更简单。

二、组件 (Component)

2.1、是什么?

@Component装饰的结构体(ArkTS),每个组件通过对数据和方法的简单封装,实现独立的可视、可交互功能单元。组件之间相互独立,随取随用,也可以在需求相同的地方重复使用。

2.2、目的

解决 "UI / 功能重复开发" 问题,解耦应用功能,实现UI能力复用与独立管理

如:一个UI块出现 ≥ 2 的场景,就可以考虑UI组件的封装

2.3、怎么用

举例:我这个轮播图的UI效果在2个组件中都有使用到,这种属于UI/功能重复的开发,可以考虑封装公共的UI组件,在组件内书写UI,具体界面与能力由需求方实现

第一步:封装公共轮播图组件

第二步:页面内使用

三、模块 (Module)

3.1、是什么?

模块是按业务或功能划分的独立代码目录,一个模块对应一个功能的完整代码、资源、配置和依赖的集合,可以被独立编译、测试和部署

3.2、目的

解决 "代码混乱、协作困难" 问题,实现工程的解耦、团队并行开发、功能复用,并优化编译速度

3.3、怎么用

参考我写的这篇文章,关于模块的使用有两种方式👇

https://blog.csdn.net/weixin_71403100/article/details/155428242?spm=1001.2014.3001.5502

四、两者的关系

两者是属于部分与整体的包含关系,一个模块内(特别是Entry/Feature HAP)可以包含一个或多个组件;一个组件 必须存在于某个模块中,模块是组件的容器和载体

五、两者的区别对比

对比项 组件(Component) 模块(Module)
大小 最小(单个 UI / 功能单元) 较大(一组相关功能集合)
核心作用 复用 UI 和独立逻辑 拆分业务、独立维护、跨项目复用
存在形式 单个.ets文件(@Component装饰) 独立目录(含组件、页面、资源等)
配置文件 无需单独配置 必须有build-profile.json5
编译方式 随模块一起编译 可独立编译、打包成 HAR 包
相关推荐
小魔女千千鱼1 天前
把 Go 塞进鸿蒙PC:windows上用 c-shared 跑 2048
harmonyos
TrisighT1 天前
Electron 跑在鸿蒙 PC 上,单窗口和多窗口内存差 800MB?我抓了 5 组数据
性能优化·electron·harmonyos
TrisighT2 天前
AI写埋点代码,35%覆盖率坑惨运营
harmonyos·arkts·arkui
Junerver5 天前
把 DevEco Code 的 HarmonyOS 开发能力装进口袋——harmonyos-dev-skill
harmonyos
程序猿追6 天前
那个右下角的小数字怎么“卡”住我打字——我用 HarmonyOS 自己写了一个字数限制输入框
pytorch·华为·harmonyos
古德new6 天前
鸿蒙PC使用electron迁移:Joplin Electron 桌面适配全记录
华为·electron·harmonyos
世人万千丶6 天前
桌面便签小应用 - HarmonyOS ArkUI 开发实战-TextArea与Flex布局-PC版本
华为·harmonyos·鸿蒙·鸿蒙系统
慧海灵舟6 天前
AGenUI 鸿蒙端实战踩坑录:从 Column 布局消失到异步组件宽度为 0
华为·harmonyos
yuegu7776 天前
HarmonyOS应用<节气通>开发第33篇:状态管理实战
华为·harmonyos