最近,MDL(Material Design Lite)项目的继任者发布为Material Components for the Web。其目标之一是“与其他JS框架和库无缝集成”。
还有另一个项目Angular Material2,专门为Angular(v2 +)提供材料设计组件。
这两个项目都是基于 UI组件创建材料设计。此外,它们具有类似的组件ready / in-active-development,以及即将推出的相同组件集(列出here和here)。
有人可以帮我理解2个项目之间的重叠,以及我应该选择哪个新项目?
从根本上讲,我确实理解Angular Material2将更加无缝地与Angular项目紧密集成,而Web的Material Components将为多个JS框架提供钩子。但我没有看到重叠的原因,哪一个会有更多的动力(阅读更多的组件)。
答案 0 :(得分:47)
完全披露:我处理Material Components for the web,所以我的意见可能有点偏颇:)
TL; DR使用哪个库可以帮助您以最有效的方式构建UI,或者并排使用它们。查看我们的angular2集成示例 angular-mdc-web,了解如何使用ng2包装MDC-Web组件。
Web上的Material Components(缩写为 MDC-Web )的目标是为整个Web平台创建Material Design组件的规范实现。 Angular / material2是一个优秀的图书馆 - 包括我自己在内的材料设计团队中的许多人都为此做出了贡献 - 但它对非angular2应用程序是排他性的。此外,非Google图书馆和框架(如React,Aurelia,Vue等)都有 no 官方解决方案以满足他们的需求。
话虽如此,Angular2属于我们“整个网络平台”的范围,我们当然希望支持它。在这两个项目的这个阶段,我们可能有一些你需要的角度/材料2没有的组件,反之亦然。我鼓励您使用哪个库帮助您以最佳方式实现目标。这可能是角度/材料2,它可能是MDC-Web,或者老实说它可能是两者。例如,你可以在side material2的组件中使用our select component,事情应该可以正常工作。如TL中所述; DR,angular-mdc-web是一个功能齐全的库,它将MDC-Web包装在一个惯用的angular2 + API中。
最后,MDC-Web是唯一由Material Design团队自己开发的库。因此,我们可以与编写Material Design规范的人员进行协作并进行迭代。
答案 1 :(得分:17)
更新(2018年3月16日):
来自@elDuderino提供的评论Material2似乎有办法自定义。提供的答案是在材料有cdk之前。
https://material.angular.io/guide/customizing-component-styles
这两个框架现在都非常成熟。我在不同的项目中使用它们。我花了一个星期的时间才将项目从一个框架迁移到另一个框架。因此,我建议尝试两者,看看哪个你觉得舒服。
我将分享我的经验。它的观点和偏见。喜欢被纠正。
我们从头开始并使用Angular。我们决定选择Material。 我开始寻找更好的框架,并尝试了所有这些:Materialise,MDL,Angular Material 2,最后是MDC for web。
以下是我的观察,特别是对于Material2与MDC for Web。
<强>缺点强>
我知道我们可以添加主题,这就是全部。组件的所有HTML和CSS都添加在Angular Components中。因此它被编译为JavaScript并在运行时应用。所以,没有办法覆盖行为。我试了一个星期但是做不到。
以下是我提出的问题(其中一个标记为关闭,因为它似乎在征求意见 - .-)
How to customize Angular Material 2
How to Extend Angular Component style
当然他们没有得到任何答案,我无法自定义它们。如果我错了,请指导我。
检查上面提供的更新
文档不好
让我们看一个例子。查看提供的示例数量。
缺点
如果您想以Angular方式进行,我们无法立即开始使用它。需要为每个组件编写Angular的包装器。可能需要一些努力。但是每个团队都可以花些时间进行自定义,并且{{}}}努力使其变得更容易。如果不以角度方式做到这一点,我相信我们可以在没有包装的情况下开始。
<强>赞成强>
答案 2 :(得分:4)
对于考虑使用Angular Material 2的人们,Sketch Material插件/主题编辑器和Gallery工具仅适用于MDC。我走的路是相同的,我从Angular Material 2入手,随着Angular Ivy的最新介绍,我不确定团队将在Angular Material 2中投入多少精力。是一个安全的选择。
摘自最近的自述文件:
计划在2019年第一季度→2019年第二季度(一月至六月)使用高级内容:
答案 3 :(得分:2)
Angular Material团队似乎计划与MDC团队合作:
计划在2018年第四季度(10月-12月)发布的高级内容:
- 改进我们自己的构建和自动化工具
- 修复错误并减少Google内部的技术负担
- 制定有关如何与MDC Web团队合作的长期计划
- 用于高级表改进的设计(列大小调整,选择指令,内联编辑)
(README)
此内容已于20天前(2018年10月10日)添加到自述文件中。
因此,很有可能在将来Angular Material只是Web的MDC的某种Angular包装或Angular实现。
答案 4 :(得分:-1)
Angular Material 2仍然过时,并且没有正确实现材料规范。不要使用它。