将 Angular 项目从 Angular 11 迁移到 Angular 18:CSS 和 Angular Material 问题(mat 与 mat-mdc)

问题描述 投票:0回答:1

我最近将我的项目从 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 angular-material
1个回答
0
投票

当您想要从 Angular 版本 11 迁移到版本 18 时,您将需要执行增量版本迁移。这涉及一次升级 Angular 应用程序一个版本,解决整个过程中的任何不兼容或问题。 使用此更新指南来帮助您

© www.soinside.com 2019 - 2024. All rights reserved.