20250711-因为没有使用路由懒加载,产生了一个难以寻找的bug

原文摘要

点击关注公众号,“技术干货”及时达!

原文链接

进一步信息揣测

  • 全局样式污染的隐蔽性:路由迁移时,不同页面的全局样式可能通过打包工具或样式加载机制相互污染,这类问题在开发环境可能不会立即暴露,但会在特定路由组合下触发。
  • CSS选择器命名陷阱:通用类名(如.line)极易引发样式冲突,行业内部通常采用BEMCSS Modules等方案规避,但遗留系统或第三方库可能未遵守规范。
  • 路由迁移的隐藏风险:迁移过程中,样式作用域可能因路由懒加载或代码分割策略变化而失效,需手动检查样式隔离机制(如Scoped CSS)是否生效。
  • 调试技巧内幕:资深开发者会优先审查「非当前路由」的样式表,因为全局样式可能由其他页面动态注入,浏览器开发者工具的「覆盖」面板比直接删除样式更高效定位污染源。
  • 构建工具的潜在坑:Webpack等工具可能因配置错误(如MiniCssExtractPluginchunkFilename规则)导致样式文件合并异常,需检查生成后的CSS文件映射关系。
  • 组件库的隐式依赖:弹窗等组件可能依赖父级容器的特定类名(如.m-drawer-container-footer),但文档未明确说明,需通过源码或社区issue才能获知这些隐形契约。
  • 临时修复的长期代价:直接删除冲突样式可能引发其他页面问题,内部推荐方案是使用!important或更高优先级选择器临时修复,同时推动重构为CSS-in-JS方案。