介绍
micro-app-framework 是一个基于 WebComponents 的微前端框架,使用该框架可以将一个应用拆分成多个独立的子应用,每个子应用可以独立开发和部署,同时也可以在母应用中组合使用。该框架使用了 Shadow DOM 和 Custom Elements 这两个 WebComponents 标准,可以保证不同应用之间的样式和 JS 不被污染,同时也让应用更好的隔离和独立。
功能特性
- 支持独立开发和部署,每个子应用都是独立的项目。
- 支持组合使用,可以将多个子应用组合成一个完整应用。
- 支持按需加载,可以延迟加载子应用。
- 支持 Pelte 编译,可以将子应用编译成 WebComponents。
目标人群
本教程适合有一定前端基础,了解 WebComponents 的开发者,希望使用微前端的开发团队或个人。
安装
使用 npm 安装
npm install micro-app-framework
获取源码
github 项目地址:https://github.com/lenvonsam/micro-app-framework
引入
在需要使用的地方引入 micro-app-framework:
import '@lenvonsam/micro-app-framework';
使用
下面对 micro-app-framework 进行详细介绍:
创建一个子应用
在一个新的项目目录下,使用 Pelte 创建一个 WebComponents 应用,Pelte 是一个将 Svelte 代码编译成 Web Components 标准的工具。
npx pelte my-app my-app.js
执行上述命令后,会在项目目录下生成一个 my-app.js 文件,该文件就是一个 WebComponents 应用。
注册子应用
为了让 micro-app-framework 认识到子应用,需要将其注册到 micro-app-framework 中。可以使用 define-app 标签进行注册。
<define-app name="app1" url="http://localhost:3001/dist/bundle.js"></define-app>
其中 name 表示应用名称,url 表示应用的入口文件路径。注册多个子应用时,需要遵循唯一性原则。
组合子应用
在母应用中使用 micro-app 标签将子应用组合在一起,如下所示:
<micro-app name="app1"></micro-app>
其中 name 表示添加子应用时所指定的应用名称,可以组合多个子应用。
消息传递
在多个子应用中,有时候需要进行消息传递,以进行数据交互或应用协调。micro-app-framework 提供了全局事件总线来处理消息传递,可以在全局上,发送和监听事件。
在发送事件的地方,可以使用代码如下:
this.dispatchEvent( new CustomEvent('custom-event', { bubbles: true, composed: true, detail: {msg: 'Hello world!'} }) );
在监听事件的地方,可以使用代码如下:
window.addEventListener('custom-event', (event) => { console.log(event.detail.msg); // 打印 'Hello world!' });
生命周期
在子应用中,可以使用 connectedCallback 和 disconnectedCallback 两个生命周期函数,分别代表子应用被添加和被移除后所执行的函数。例如:
-- -------------------- ---- ------- ----- ----------- ------- ----------- - ------------- - -------- - ------------------- - ------------------------ - ---------------------- - ------------------------ - - ------------------------------------- -------------
总结
本教程介绍了如何使用 micro-app-framework 搭建基于 WebComponents 的微前端框架,从安装、使用、消息传递等方面进行了详细介绍,并提供了示例代码。通过学习本教程,可以更好地了解微前端的概念和实现方式,有助于开发者更好地使用微前端开发应用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f471d8e776d08041095