一、产品定制层、基础特性层、公共能力层
1.1、产品定制层:product
应用的入口,
1.2、基础特性层:feature
业务:首页、我的
1.3、公共能力层:common
方法能力复用
一次开发,多段部署
3层架构的包,可以是har包,也可以是hsp包
har静态共享包
不支持依赖循环、A模块依赖B模块,B模块依赖A模块
不支持依赖传递,即:A模块依赖B模块,B模块依赖C模块
可以发三方库,
hsp动态共享包
多个hap/hsp共用的代码和资源放在一个HSP中,可以提高代码、资源的可重用性,只需要一份hsp包,减少了app的空间
不能发三方库
hsp拷贝一份,har会拷贝多份
二、项目中,使用三层架构步骤:
2.1、新建3个目录:product、features、common
2.2、分别在common中,新建1个模块,且选择hsp包,模块名可以命名为:basic
2.3、分别在features中,新建1个模块,且选择hsp包,模块名可以命名为:home、mine、login
2.4、product入口,汽车端,平板端,把默认的entry文件夹,移到该目录下,并重命名为:phone;
如果要在此目录新建平板端的项目,需要新建模块,并且选择hap包,因为只有hap才有页面
调出运行配置,将 deploy multi hap => deploy multi hap packages 勾上,并且下拉出来的选框,都勾上
三、模块之间依赖
在common中,想新建一个head的公共组件,phone模块想依赖这个组件,分2步
3.1、在common => index 文件中,先要导出head组件:
export *from './src/main/ets/components/Head'
注意:Head要有export关键字
3.2、在phone => oh-package.json5文件中,设置依赖:
依赖前:
{
"name": "phone",
"version": "1.0.0",
"description": "Please describe the basic information.",
"main": "Index.ets",
"author": "",
"license": "Apache-2.0",
"packageType": "InterfaceHar",
"dependencies": {
}
}
依赖后:
{
"license": "",
"devDependencies": {},
"author": "",
"name": "phone",
"description": "Please describe the basic information.",
"main": "",
"version": "1.0.0",
"dependencies": {
'@zjian/basic': 'file:../../common/basic'
//格式:@zjian表示组织,basic表示业务名称
}
}
完成