Core 概览
介绍
Core(框架核心层)提供与业务无关的通用能力,是整个框架的基础。这一层的代码可以直接复用到其他 HarmonyOS 项目,无需任何修改。
设计目标
- 无业务依赖:不包含任何业务逻辑,保持框架的纯净性
- 可复用:可直接复制到其他项目使用
- 稳定:作为底层基础,接口稳定,不频繁变动
模块组成
Core 层包含 13 个模块:
| 模块 | 职责 | 主要内容 |
|---|---|---|
| base | 基础父类 | BaseViewModel、BaseNetWorkViewModel 等 |
| common | 通用模块 | 通用常量、枚举等 |
| components | 通用组件 | 可复用的 UI 组件 |
| database | 数据库 | 数据库封装和操作 |
| designsystem | 设计系统 | 颜色、间距、字体等视觉规范 |
| di | 依赖注入 | DI 容器和注入机制 |
| ibestui | IBest UI | IBest-UI-V2 组件库封装 |
| layoutstate | 布局状态 | 响应式布局状态管理 |
| module | 模块管理 | 模块注册和管理 |
| navigation | 导航系统 | 路由配置和导航服务 |
| network | 网络请求 | HTTP 请求封装 |
| util | 工具类 | 各种工具函数 |
与其他层的关系
Packages
↓ 依赖
Shared
↓ 依赖
Core ← 不依赖任何上层模块- Core 不依赖 Shared 或 Packages:保持底层的独立性
- Shared 依赖 Core:使用 Core 提供的基础能力
- Packages 依赖 Core:使用 Core 的基类、UI 组件等
使用示例
使用 ViewModel 基类
typescript
import { BaseViewModel } from "@core/base";
@ObservedV2
export default class MyViewModel extends BaseViewModel {
// 继承加载状态管理等基础能力
}使用设计系统
typescript
import { Colors, Spacing } from "@core/designsystem";
Column() {
// ...
}
.backgroundColor(Colors.primary)
.padding(Spacing.medium)使用网络请求
typescript
import { AxiosHttpClient } from "@core/network";
const response = await AxiosHttpClient.get("/api/users");扩展 Core 层
如需扩展 Core 层能力,请遵循以下原则:
- 不引入业务逻辑:新增内容必须是通用能力
- 保持接口稳定:修改已有接口需考虑向后兼容
- 完善导出:在模块的
Index.ets中导出新增内容 - 编写文档:为新增功能编写文档
注意事项
- Core 层的修改会影响所有上层模块,需谨慎操作
- 业务相关的能力应放在 Packages 层,不要污染 Core 层
- 新增模块时参考现有模块的目录结构和命名规范