微前端 Micro-Frontends - Single-SPA

微前端 Micro-Frontends - Single-SPA

single-spa 包含两部分,
1. Applications ,每个应用都是一个完整的 SPA,每个应用需要知道怎么从 DOM 上 bootstrap(引导), mount(安装), and unmount(卸载)(这三个可以理解为 single-spa 的生命周期)
2. 一个配置文件 single-spa-config ,可以理解为 HTML 页面和 single-spa 注册应用程序的 js 配置文件,注册应用需要的参数:
1. 一个应用的名字,不能重复
2. 一个加载应用代码的函数
3. 一个决定什么时候激活/灭活应用的函数
4. 自定义参数

Single-SPA 提供了自己的一个脚手架 create-single-spa
使用这个脚手架创建项目的时候可以附加参数

# --dir 声明生成的项目文件名
npx create-single-spa my-dir
npx create-single-spa --dir my-dir

# --moduleType 指定生成哪一种类型的 single-spa ,参考下面三种类型
create-single-spa --moduleType root-config
create-single-spa --moduleType app-parcel
create-single-spa --moduleType util-module

# --framework 指定使用何种框架的,例如 react vue
create-single-spa --framework react
create-single-spa --framework vue
create-single-spa --framework angular 

在single-spa中,有以下三种微前端类型:
1. single-spa applications :为一组特定路由渲染组件的微前端。
- 有多个路由
- 声明式 API ———— registerApplication
- 渲染 UI
- single-spa 管理生命周期:负责管理 regist 注册后的应用
- 核心构建模块
2. single-spa parcels : 不受路由控制,渲染组件的微前端。

它们的存在主要是允许您在多个框架中编写应用程序时在应用程序之间重用UI
- 无路由
- 命令式 API
- 渲染 UI
- 自定义生命周期:mountParcel mountRootParcel unmount 等方法来控制 parcels,参考API
- 仅在多个框架中需要
4. utility modules : 非渲染组件,用于暴露共享javascript逻辑的微前端。
- 无路由
- 暴露接口
- 可能渲染 UI
- 外部模块:没有直接的单spa生命周期
- 共享通用逻辑或创建服务很有用

Single-SPA Config

配置文件包含两部分:
1. 一个所有应用共享的 html 文件
2. 一个调用了 singleSpa.registerApplication() 的 js 文件

singleSpa.registerApplication() 参数说明

  1. application name,一个字符串,用于描述应用的名称
  2. 加载函数或者应用
    • 参数是应用时:一个实现了生命周期方法的对象
const application = {
   
  bootstrap: () => Promise.resolve(), //bootstrap function
  mount
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值