HarmonyOS 鸿蒙Next-三层架构之项目引用har包实战

发布于 1周前 作者 caililin 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next-三层架构之项目引用har包实战
废话不多说,首先我们从官网了解下分层架构设计-三层架构:

链接:https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-layered-architecture-design-V5

分层架构逻辑模型:

下面以项目为例-实现在 Personal.ets页面 中引用 feature 中mine的har组件并展示:

1.在feature/mine/src/main/ets/components/MainPage.ets新建一个har组件:

[@Component](/user/Component)
export struct MainPage {
  [@State](/user/State) message: string = 'mine---Hello World';

build() { Row() { Column() { Text(this.message) .fontSize(50) .fontWeight(FontWeight.Bold) } .width(‘100%’) } .height(‘100%’) } }

2.需要在 product/phone 的 oh-package.json5 中添加对feature/mine 的依赖

{
  "name": "phone",
  "version": "1.0.0",
  "description": "Please describe the basic information.",
  "main": "",
  "author": "",
  "license": "Apache-2.0",
  "dependencies": {
    "@ohos/mine": "file:../../features/mine"  // 添加这一行
  }
}

3.然后在feature/mine中导出需要的组件

// 导出所有需要的组件
export { MainPage } from './src/main/ets/components/MainPage'

4.最后在 Personal.ets 中导入并使用组件

import { MainPage } from 'mine'  // 导入 feature/mine 中的组件

@Entry @Component export struct Personal { build() { Stack() { Navigation() { List() { ListItem() { // 使用 feature/mine 中的 MainPage 组件 MainPage() } } .padding({ left: 12, right: 12 }) .width(‘100%’) .height(‘100%’) .backgroundColor(Color.White) } } } }

项目目录结构如下:

展示效果如下图:

这个就展示到这里了,大家觉得有用处的话就帮忙点点赞!

1 回复

在HarmonyOS鸿蒙Next的三层架构中,项目引用HAR(Harmony Archive)包是一个常见的实战操作。HAR包是静态共享包,包含代码、C++库、资源和配置文件等,用于实现多个模块或多个工程共享ArkUI组件、资源等相关代码。

要引用HAR包,首先需要在项目中创建或获取HAR包。HAR包通常由库模块(Library Module)编译生成。开发者可以创建自己的库模块,编写相关业务代码,并通过DevEco Studio菜单栏的Build > Make Module进行编译构建,生成HAR包。

接下来,在项目中使用HAR包。需要将HAR包放置到项目中的某个目录下,比如新建libs文件夹。然后,在oh-package.json5文件中添加HAR包的依赖。添加后,执行同步操作Sync Now,生成依赖包在工程的oh_modules目录下。

在代码中,可以通过import语句引用HAR包中export的TS类、方法、ArkUI组件等。使用HAR包中的组件、方法等,可以实现代码复用,提高开发效率。

需要注意的是,HAR包不支持在配置文件中声明UIAbility组件、ExtensionAbility组件和pages页面。同时,HAR包不支持在AppScope目录中引用资源,编译构建时AppScope中的内容不会打包到HAR中。

如果在引用HAR包的过程中遇到问题,可以检查HAR包是否正确生成、放置路径是否正确、oh-package.json5文件中依赖配置是否正确等。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部