微前端中子应用注册后为什么不显示?
我用 qiankun 搭了个主应用,注册了一个 Vue 子应用,但页面一直是空白的,控制台也没报错。子应用单独运行是正常的,就是嵌入主应用后不渲染。
我检查了 activeRule 和 entry 地址,看起来没问题。是不是 registerMicroApps 的写法有毛病?下面是我的注册代码:
registerMicroApps([
{
name: 'dashboard',
entry: '//localhost:8081',
container: '#subapp-container',
activeRule: '/dashboard'
}
]);
start();
主应用里也加了 <div id="subapp-container"></div>,路由跳到 /dashboard 时容器元素确实存在,但里面啥也没有……到底漏了哪一步?
先试试在子应用开发服务器启动时加上 --open 和 --https 参数,或者在 webpack.config.js 里加个 devServer: { headers: { "Access-Control-Allow-Origin": "*" } }。这样可以确保跨域资源共享正常。
另外确认下子应用的 publicPath 设置,建议改成相对路径,比如 / 这样。有时候绝对路径会导致资源加载失败。
再就是检查下主应用里的样式隔离配置,有时全局样式冲突也会导致内容不显示。可以在 registerMicroApps 里加上
最后记得清除浏览器缓存再试一次。希望能帮到你,折腾微前端确实挺费神的,别灰心!