微前端子应用的生命周期钩子为啥不执行?

东江 Dev 阅读 8

我用 qiankun 搭了个微前端项目,主应用能正常加载子应用,但子应用里的 bootstrapmount 这些生命周期函数好像根本没被调用,控制台也没报错。

子应用导出的生命周期是这样写的:

export async function bootstrap() {
  console.log('子应用 bootstrap');
}

export async function mount(props) {
  console.log('子应用 mount', props);
}

export async function unmount() {
  console.log('子应用 unmount');
}

主应用注册子应用时也配了 entry 和 name,但就是看不到这些 log。是不是我漏了什么配置?

我来解答 赞 1 收藏
二维码
手机扫码查看
1 条解答
豫豪 ☘︎
你这种情况很可能是因为子应用的导出方式不对。qiankun 对生命周期函数的导出有明确要求,要使用 export default 来导出一个包含所有生命周期函数的对象。

标准写法应该这样:
export default {
bootstrap: async () => {
console.log('子应用 bootstrap');
},
mount: async (props) => {
console.log('子应用 mount', props);
},
unmount: async () => {
console.log('子应用 unmount');
}
}


我之前也踩过这个坑,按照官方文档调整后就正常了。另外记得检查下主应用注册子应用时的配置,确保 activeRuleentry 都设置正确。有时候路径没配对也会导致加载失败但不报错的情况。折腾微前端真挺耗神的,不过搞定了还挺有成就感。
点赞
2026-03-26 18:00