微前端子应用切换时样式缓存失效怎么办?
我在用 qiankun 搭建微前端项目,主应用和多个子应用都是 Vue。发现一个问题:当切换子应用再切回来时,有些 CSS 样式没生效,尤其是动态插入的 style 标签好像被清掉了。
我试过把公共样式抽到主应用里,但子应用自己的 scoped 样式还是会丢。是不是因为沙箱机制把样式缓存干掉了?有没有办法让子应用的样式在切换后还能保留?
.product-card {
border-radius: 8px;
box-shadow: 0 2px 12px rgba(0,0,0,0.1);
transition: transform 0.2s;
}
.product-card:hover {
transform: translateY(-2px);
}
首先在子应用入口加上这段代码:
记得转义样式内容里的特殊字符。不过要注意,这样直接操作 DOM 插入样式可能带来 XSS 风险,要确保样式的来源是可信的。
另外提醒一句,别把所有样式都用这种方法处理,只针对那些需要保留的特定样式。主应用和子应用的公共样式最好还是通过其他方式共享,比如 CDN 引入或者构建工具配置。不然样式太多的话,性能和维护都会成问题。