今天不写页面和动画,斗胆给大家讲一讲软件工程。

软件工程讲究高内聚低耦合,意思就是把整个工程按照分工不同分成不同的模块,每一个模块紧密联系又互不影响。就像一座摩天大楼,它里面的电路网非常庞大和复杂,它们每一层楼每一个房间都能独立运行且互不影响,所有的房间电路都通过一个总开关控制。

软件工程亦是如此,让每一个模块职责明确,易于管理,可以提高代码的可维护性、可扩展性。

那么在鸿蒙中怎么实现模块化的开发,今天幽蓝君跟大家分享一下。

DevEco创建的项目一开始是没有进行模块化的,我们通常会在entry目录下的pages中进行项目的开发。

如果这个工程比较庞大,我们就可以尝试使用模块化的开发,比如把项目的首页、个人中心等模块各自分开。

现在尝试在工程目录下新建一个features文件夹,然后在features文件夹右键,新建Module,这里给了四个选项,第一个选项会创建一个可以独立编译的项目,这通常用于一个项目的不同版本,我们今天要选择的是最后一个Static Library,命名注意要小写,完成之后可以看到模块目录下有一些资源和配置文件。

这样我们就把工程中不同的模块分离开来,功能明确,互不打扰,打包的时候这些模块也会被单独打包为本地依赖库,非常完美。

那么,外部怎么引入这些模块呢。

首先注意每一个模块根目录下的Index文件,需要被外界引用的页面要先在这里导出。

导出之后,这些组件还是不能被外部直接引用的。要先在oh-package.json5中添加依赖,举个例子:

"dependencies": {
'home': 'file:../features/home'
}

这个写法非常有讲究,前面是名字,这个名字要和组件目录中oh-package.json5文件里的name一致,后面是以file开头的组件目录,然后就可以在页面中进行引用了。

import {MainPage} from 'home/Index'

以上就是鸿蒙模块化开发的基本配置,感谢您的阅读。

关于HarmonyOS NEXT中的模块化开发的更多相关文章

  1. Javascript模块化开发,使用模块化脚本加载工具RequireJS,提高你代码的速度和质量。

    随着前端JavaScript代码越来越重,如何组织JavaScript代码变得非常重要,好的组织方式,可以让别人和自己很好的理解代码,也便于维护和测试.模块化是一种非常好的代码组织方式,本文试着对Ja ...

  2. 在Html中使用Requirejs进行模块化开发

    在前端模块化的时候,不仅仅是js需要进行模块化管理,html有时候也需要模块化管理.这里就介绍下如何通过requirejs,实现html代码的模块化开发. 如何使用requirejs加载html Re ...

  3. 初学seaJs模块化开发,利用grunt打包,减少http请求

    原文地址:初学seaJs模块化开发,利用grunt打包,减少http请求 未压缩合并的演示地址:demo2 学习seaJs的模块化开发,适合对seajs基础有所了解的同学看,目录结构 js — —di ...

  4. JS模块化开发:使用SeaJs高效构建页面

    一.扯淡部分 很久很久以前,也就是刚开始接触前端的那会儿,脑袋里压根没有什么架构.重构.性能这些概念,天真地以为前端===好看的页面,甚至把js都划分到除了用来写一些美美的特效别无它用的阴暗角落里,就 ...

  5. iOS关于模块化开发解决方案(纯干货)

    关于iOS模块化开发解决方案网上也有一些介绍,但真正落实在在具体的实例却很少看到,计划编写系统文章来介绍关于我对模块化解决方案的理解,里面会有包含到一些关于解耦.路由.封装.私有Pod管理等内容:并编 ...

  6. Angular 结合RequireJs实现模块化开发

    angular的指令是模块化很好的一个体现,下面我将只使用指令(不用控制器),结合requirejs,实现模块化开发. 模块化关系图:

  7. .NET/ASP.NET MVC(模块化开发AraeRegistration)

    阅读目录: 1.开篇介绍 2.AreaRegistration注册路由(传递路由上下文进行模块化注册) 1]开篇介绍 ASP.NET Routing 路由功能非常强大,设计的也很巧妙:如果说ASP.N ...

  8. Mvc 模块化开发

    在Mvc中,标准的模块化开发方式是使用Areas,每一个Area都可以注册自己的路由,使用自己的控件器与视图.但是在具体使用上它有如下两个限制 1.必须把视图文件放到主项目的Areas文件夹下才能生效 ...

  9. 模块化开发--sea.js

    当你的网站开发越来越复杂的时候,会经常遇到一下问题吗?1.冲突2.性能3.依赖如果在多人开发或者是复杂的开发过程中会经常遇到这些问 题,就可以用模块化开发来解决.以上问题是如何产生的?1.冲突:如果你 ...

  10. 详解JavaScript模块化开发

    什么是模块化开发? 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js得到重视,应用也广泛起来了,jQuery,Ajax,Node.Js,MVC,MVVM等 ...

随机推荐

  1. 用 just 简化项目命令管理

    在软件开发过程中,高效管理项目命令是提升开发效率的关键, 它们可以帮助我们自动化重复的任务,简化项目管理流程,提高效率. 今天,我们来介绍一个名为 just 的任务运行器. 它由 Casey 发起,用 ...

  2. DevExpress WPF 在RibbonControl的Header中添加搜索框

    主要代码: <dxb:BarEditItem Name="txtSearch" EditHorizontalAlignment="Center"> ...

  3. C# USB 摄像头 OpenCV 视频picBox呈现,抓拍图像保存呈现。没有注释版本。

    1.winform 应用程序,两个picturebox空间,一个用于视频呈现,一个用于抓拍呈现. 2.引用包OpenCvSharp4.OpenCvSharp4.Extensions.OpenCvSha ...

  4. C#短链接生成方法

    public class Program { static void Main() { Random rd = new Random(); for (int i = 0; i < 10; i++ ...

  5. .NET 9.0 全栈技术的高效开源低代码平台(Vue3+Element-Plus)

    前言 推荐一款基于.NET 9.0 全栈框架的新一代技术架构(Vue3+Element-Plus),开源低代码平台-Microi吾码. 平台不仅无限制地支持用户数.表单数.数据量及数据库数量,还通过跨 ...

  6. SpringSecurity5(1-快速入门)

    依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spri ...

  7. Pwnable_orw

    题源 题解 保护 只开启了栈保护 分析 进入ida分析 main函数如下 seccomp (Secure Computing Mode)是一种 Linux 内核安全机制,它可以 限制进程可执行的系统调 ...

  8. CORS 跨域请求一种解决方案

    平常工作难遇到这类问题, 一般搭建新系统或搭建系统二时需要复用系统一一些前后端能力, 可能会遇到跨域拦截问题. 这里提供一种基于服务器解决方案. 更多其他方案, 详细细节可自行查阅更多资料, 写一些前 ...

  9. Kubernetes v1.16.3版本开启 Job ttlSecondsAfterFinished 自动清理机制

    前言 Kubernetes v1.23 之前,Job 在处于 Completed 后,默认是不会被清理的. 完成的 Job 通常不需要留存在系统中.在系统中一直保留它们会给 API 服务器带来额外的压 ...

  10. go cobra实例讲解

    概述 cobra 库是 golang 的一个开源第三方库,能够快速便捷的建立命令行应用程序. 优势:cobra 可以快速建立CLI程序,使我们更专注于命令需要处理的具体的业务逻辑. 举两个例子: hu ...