零基础轻松入门 qiankun 微前端开发
2023-11-06 10:22:43
介绍
微前端是一种将前端应用程序分解成更小、更独立的模块的架构风格。这使得团队可以更轻松地构建、维护和部署应用程序,并能够更轻松地实现代码复用。
qiankun 是一个用于构建微前端应用程序的 JavaScript 库。它基于 single-spa 框架,提供了开箱即用的功能,可以帮助您轻松地将子应用程序集成到基座应用程序中。
项目创建
首先,我们需要创建一个新的 Angular 项目。我们可以使用以下命令:
ng new main
当询问是否需要路由时,选择 "Yes"。此时,基座项目应该是可以启动,并且没有报错。
qiankun 配置
接下来,我们需要在基座项目中安装 qiankun。我们可以使用以下命令:
ng add single-spa-angular
注意:目前暂不支持 Angular 11。
安装完成后,我们需要在基座项目的 src/main.ts
文件中进行一些配置。首先,我们需要导入 qiankun:
import { singleSpaAngular, registerApplication, SingleSpaAngularOptions } from 'single-spa-angular';
然后,我们需要定义子应用程序的配置信息。我们可以使用以下代码:
const angularLifecycles = singleSpaAngular({
domElementGetter: () => document.getElementById('qiankun-app'),
template: '<qiankun-app></qiankun-app>',
// Register Angular app with single-spa here
bootstrapFunction: bootstrapFunction
});
其中,domElementGetter
指定了子应用程序的挂载元素,template
指定了子应用程序的 HTML 模板,bootstrapFunction
指定了子应用程序的引导函数。
最后,我们需要将子应用程序注册到基座应用程序中。我们可以使用以下代码:
registerApplication({
name: 'qiankun-app',
app: angularLifecycles,
activeWhen: ['/qiankun-app']
});
其中,name
指定了子应用程序的名称,app
指定了子应用程序的配置信息,activeWhen
指定了子应用程序的激活条件。
子项目创建
接下来,我们需要创建一个子应用程序。我们可以使用以下命令:
ng new sub-app
当询问是否需要路由时,选择 "No"。
子项目配置
在子项目中,我们需要安装 qiankun:
ng add single-spa-angular
安装完成后,我们需要在子项目的 src/main.ts
文件中进行一些配置。首先,我们需要导入 qiankun:
import { singleSpaAngular, withPreloading } from 'single-spa-angular';
然后,我们需要定义子应用程序的配置信息。我们可以使用以下代码:
const angularLifecycles = singleSpaAngular({
mainModuleId: 'main',
template: '<sub-app></sub-app>'
});
export function bootstrapFunction(props) {
return angularLifecycles.bootstrap(props);
}
export const mount = withPreloading(bootstrapFunction);
export const unmount = angularLifecycles.unmount;
其中,mainModuleId
指定了子应用程序的主模块,template
指定了子应用程序的 HTML 模板,bootstrapFunction
指定了子应用程序的引导函数。
运行项目
现在,我们已经完成了基座项目和子项目的配置。我们可以使用以下命令启动基座项目:
ng serve
然后,我们可以使用以下命令启动子项目:
ng serve --port 4202
现在,您应该能够在浏览器中看到您的微前端应用程序了。
结语
本教程介绍了如何使用 Angular 构建一个 qiankun 微前端项目。您现在已经掌握了 qiankun 微前端开发的基础知识,并能够构建出自己的微前端项目。