本节分别从主、子 应用视角出发,介绍如何通过 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
属性中