#518·qiankun

[RFC] loadMicroApp API 支持同名微应用缓存

Author: kuitosCreated Apr 26, 2020Updated Sep 17, 2026
Labelsenhancement

背景

目前 loadMicroApp 每次调用都会完整的将微应用的 entry 及生命周期跑一遍,即便是同名的微应用,性能上存在一定的浪费。

思路

每次 loadMicroApp 调用后将返回的生命周期钩子缓存起来,下次同名微应用通过 loadMicroApp 被加载时直接返回缓存的生命周期钩子。

但是这么做需要解决以下几个问题:

  • 两次 loadMicroApp 的调用可能 appName 相同但是 container 可以不一样,需要支持 mount 可以每次传入不同的 container。 https://github.com/umijs/qiankun/pull/992
  • 同一个 appName 的不同实例是否要共享沙箱?不共享沙箱的话 bootstrap 周期每个子应用都需要重新跑一遍,共享的话至少需要共享 mount 之前的上下文。通常来讲共享应该问题也不大?
  • 共享沙箱的话样式隔离怎么处理?至少需要确保每个实例动态加载的样式都应该挂载到自己的容器里。

跟进

  • some task
  • PR URL