我最近将我的项目从 Angular 11 迁移到 Angular 18,更新了所有相关包,包括 Angular Material。完成迁移后,我遇到了一些需要帮助解决的问题。
背景:
我的项目最初是使用 Angular 11 构建的。 我升级到 Angular 18,确保所有依赖项(包括 Angular Material)都更新到最新版本。 迁移后,我注意到 CSS 样式和类名称发生了一些变化。 问题:
CSS 样式:我的项目的整体外观发生了变化。以前应用的许多样式现在要么丢失,要么被更改。
类名称:对于某些组件,Angular Material 已从使用 mat- 前缀改为 mdc-。例如,以前具有 mat-button 类的按钮现在使用 mdc-button,它具有不同的样式和行为。
我的问题:
有没有办法在 Angular 18 中保留 Angular 11 中旧的 mat 类和样式?如果可能的话,我宁愿不采用 mdc- 前缀。 如果无法保留旧类,那么确保 UI 与其之前的设计保持一致的最佳方法是什么? 我是否需要调整任何特定步骤或配置才能保持项目迁移后的外观? 其他详细信息:
我已经查看了 Angular Material 官方文档和迁移指南,但我仍然不清楚如何在不进行重大重写的情况下维护旧样式。 我尝试使用自定义 CSS 覆盖一些新的 mdc-style,但结果不一致。 环境:
角度:18 Angular Material:与 Angular 18 兼容的最新版本
任何有助于解决这些问题的指导、示例或资源将不胜感激。预先感谢您!
查看文档:我浏览了官方 Angular Material 文档和提供的迁移指南,寻找保留旧 mat 类名称或样式的任何选项。不幸的是,我没有找到任何简单的解决方案。
自定义 CSS 覆盖:我尝试通过添加自定义 CSS 来模仿旧的 mat- 外观,从而手动覆盖新的 mdc- 样式。然而,结果不一致,并且在整个项目中维护这些覆盖似乎不切实际且容易出错。
探索兼容性选项:我在 Angular 或 Angular Material 中搜索了任何可能允许我继续使用 mat 类的向后兼容性功能或标志,但我找不到任何有效的东西。
我希望找到一种方法:
保留旧的样式和类:继续使用 mat- 前缀类,而无需重构整个代码库以采用新的 mdc- 类。 简单的迁移路径:无缝迁移路径,其中新类 (mdc-) 不会极大地改变 UI 的外观和感觉,也不会需要付出很大的努力来保持以前的设计一致性。
当您想要从 Angular 版本 11 迁移到版本 18 时,您将需要执行增量版本迁移。这涉及一次升级 Angular 应用程序一个版本,解决整个过程中的任何不兼容或问题。 使用此更新指南来帮助您。