micro-app子应用加载后样式错乱怎么办?
我在主应用里用 micro-app 嵌入了一个 React 子应用,本地跑没问题,但部署到测试环境后子应用的样式全乱了,有些组件宽度变成 0,还有字体大小也不对。我试过在子应用里加 scoped 样式和 CSS Modules,都没用。
主应用是用 create-react-app 搭的,子应用也是 React,下面是子应用入口组件的一小段代码:
function App() {
return (
<div className="container">
<h1 style={{ fontSize: '24px' }}>子应用标题</h1>
<p className="content">这里是内容区域</p>
</div>
);
}
export default App;
是不是 micro-app 的沙箱机制影响了 CSS?该怎么解决?
首先检查下主应用有没有全局样式影响到子应用。建议给子应用根节点加个唯一的 class 名,比如叫 micro-app-root,然后在子应用的 CSS 里用这个做前缀。
代码给你:
再配上这样式的写法:
如果还不行,试试在 micro-app 配置里加上 strictStyleIsolation 参数,不过这个可能会带来性能损耗,慎重使用。
最后提醒一句,部署环境和本地环境可能有差异,特别是涉及到样式解析的时候,多看看浏览器调试工具里的计算样式。这破问题折腾人啊,祝你好运。