微前端如何做样式隔离(CSS 互不污染)?

几种隔离手段:

  1. Shadow DOM(最强):把子应用挂到 Shadow Root 内,样式天然不泄漏(但弹窗/全局样式会受限,且部分 UI 库兼容性差)
  2. 动态样式表 + 作用域前缀:qiankun 默认给子应用所有 CSS 选择器加前缀(如 div[data-qiankun=sub]),运行时切换时增删样式表
  3. CSS Modules / scoped:子应用内部用局部作用域类名(Vue scoped、CSS Modules),降低冲突概率
  4. 约定命名空间:团队间用 BEM 风格前缀(如 app-a-*)

实践中 qiankun 的「动态样式表 + 前缀改写」是最常用、兼容性最好的方案;Shadow DOM 隔离最彻底但有局限性。

同分类其他题目