本节分别从主、子 应用视角出发,介绍如何通过 Garfish API 来将应用接入 Garfish 框架
通过 Garfish API 接入主应用整体流程分为 2 步:
garfish 依赖包Garfish.run,提供挂载点、basename、子应用列表当引入 Garfish 实例,执行实例方法 Garfish.run 后,Garfish 将会立刻启动路由劫持能力。
这时 Garfish 将会监听浏览器路由地址变化,当浏览器的地址发生变化时,Garfish 框架内部便会执行匹配逻辑,当解析到当前路径符合子应用匹配逻辑时,便会自动将应用挂载至指定的 dom 节点上,并在此过程中会依次触发子应用加载、渲染过程中的 生命周期钩子函数.
请确保指定的节点存在于页面中,否则可能会导致出现 Invalid domGetter "xxx" 错误。在 Garfish 开始渲染时,无法查询到该挂载节点则会提示该错误
解决方案
如果你的业务需要手动控制应用加载,可以使用 Garfish.loadApp 手动加载 APP:
通过 Garfish API 接入子应用整体流程分为 3 步:
basename【重要】注意:
针对子应用需要导出生命周期函数,我们提供了桥接函数
@garfish/bridge-react自动包装应用的生命周期,使用@garfish/bridge-react可以降低接入成本与用户出错概率,也是 garfish 推荐的子应用接入方式。
basename我们在 接入指南 章节详细中介绍了各框架的子应用接入 Garfish 的 demo 案例及接入过程注意事项,目前提供了:
可移步 接入指南 查看详细接入步骤。
使用 Garfish API 搭建一套微前端主子应用的主要成本来自两方面
@garfish/bridge-react 包提供的函数包装子应用后返回 provider 函数并导出basename 的设置方式
basename 将其传递至 BrowserRouter 的 basename 属性中basename 传递至 VueRouter 的 basename 属性中