解决办法:将子应用的实例挂载为主应用的一个组件。
- 子应用:
new Vue({
el: '#app',
mounted() {
if (window.__POWERED_BY_QIANKUN__ && process.env.NODE_ENV === 'development') {
// 将子应用实例挂载到window.__QIANKUN_SUB_APP_VM__ 方便主应用获取
window.__QIANKUN_SUB_APP_VM__ = this
}
}
})
- 主应用
let rootInstance = new Vue({
// ...
})
registerMicroApps(apps,
{
afterMount: () => {
if (window.proxy.__QIANKUN_SUB_APP_VM__ && process.env.NODE_ENV === 'development') {
rootInstance.$children.push(window.proxy.__QIANKUN_SUB_APP_VM__);
}
}
}
)