# 前言
前面的章节针对微前端的框架做了简单的介绍,已经可以满足我们初学者的开发了,但是应用之间的通信还是存在问题的,假设我是一个 a 应用,基于 a 应用的某种动作或者某种状态,需要对象 b 应用进行更新,这个时候就需要我们想一个比较合理的方案来解决该问题来
一个好的体系结构是将微前端解耦,并且不需要频繁通信。基于路由的single-spa应用程序本质上需要较少的应用程序间通信。
微前端直接通信的可能有三样东西:
- 方法,组件,逻辑,全局状态
- API数据
- UI状态
# 通信状态
# 方法,组件,逻辑,全局状态
这里,single-spa 官方有提供一个案例,大家可以参考一下:
你可以在不同git仓库或JS包的微前端之间导入或导出方法,组件,逻辑,全局状态:
// @org-name/auth
export function userHasAccess(permission) {
return loggedInUser.permissions.some(p => p === permission);
}
import { userHasAccess } from '@org-name/auth'
// 在 single-spa应用程序中,从不同的微前端导入并使用util函数
const showLinkToInvoiceFeature = userHasAccess('invoicing');
@前端进阶之旅: 代码已经复制到剪贴板
# API数据
这里,single-spa 官方有提供一个案例,大家可以参考一下:
API数据通常不需要在 microfrontend 之间共享,因为每个 single-spa 应用程序控制不同的路由,而不同的路由通常有不同的数据。然而,有时您确实需要在
