Web与Angular材质的材料组件2

Dee*_*akV 70 material-design angular-material2 material-components

最近,MDL(Material Design Lite)项目的后续版本作为Web的材料组件推出.其目标之一是"与其他JS框架和库无缝集成".

还有另一个项目Angular Material2,专门为Angular(v2 +)提供材料设计组件.

这两个项目都在创建基于材料设计的UI组件.此外,它们具有类似的组件准备/在线开发,以及即将到来的相同组件(在此处和此处列出).

有人可以帮我理解2个项目之间的重叠,我应该选择哪个新项目?

从根本上讲,我确实理解Angular Material2将更加无缝地与Angular项目紧密集成,而Web的Material Components将为多个JS框架提供钩子.但我没有看到重叠的原因,哪一个会有更多的动力(阅读更多的组件).

Tra*_*man 50

完全披露:我在Web上使用Material Components,所以我的观点可能有点偏颇:)

TL; DR使用哪个库可以帮助您以最有效的方式构建UI,或者并排使用它们.查看我们的angular2集成示例 angular-mdc-web,了解如何使用ng2包装MDC-Web组件.

正如所提到的,Web组件的材料组件(缩写为MDC-Web)的目标是为整个Web平台创建Material Design组件的规范实现.Angular/material2是一个优秀的图书馆 - 包括我自己在内的材料设计团队中的许多人都为此做出了贡献 - 但它对非angular2应用程序是排他性的.此外,非谷歌图书馆和框架,如React,Aurelia,Vue等,没有正式的解决方案来满足他们的需求.

话虽如此,Angular2属于我们"整个网络平台"的范围,我们肯定希望因此而支持它.在这两个项目的这个阶段,我们可能有一些你需要的角度/材料2没有的组件,反之亦然.我鼓励您使用哪个库帮助您以最佳方式实现目标.这可能是角度/材料2,它可能是MDC-Web,或者老实说它可能是两者.例如,你可以在side material2的组件中使用我们的select组件,事情应该可以正常工作.如TL; DR中所述,angular-mdc-web是一个功能齐全的库,它将MDC-Web包装在一个惯用的angular2 + API中.

最后,MDC-Web是唯一由Material Design团队自己开发的库.因此,我们能够与编写Material Design规范的人员进行协作并进行迭代.

  • 因此,谷歌本身还没有一条明确的道路.我们仍然需要等到经理决定哪一个必须被杀. (30认同)
  • 我现在看到的方式是,对于他们(以及我们,开发人员)来说,将更多的资源集中在MDC-Web并将material2项目更改为MDC-Web的简单ng2包装器/适配器项目会好得多. (10认同)
  • 真?Vue的?看看这个https://vuetifyjs.com/它是完美的材料框架. (2认同)

Vam*_*shi 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.

材料2

  • 优点
    • 现成.一切都准备就绪,随时可以开始工作
    • 接近Angular的建筑
  • 缺点

    • 组件列表还没有完成(它们会越过时间,所以可以)
    • 定制是不可能的

    我知道我们可以添加主题,这就是全部.组件的所有HTML和CSS都添加在Angular Components中.所以它被编译为JavaScript并在运行时应用.因此,没有办法覆盖行为.我试了一个星期但是做不到.

    以下是我提出的问题(其中一个标记为关闭,因为它似乎在征求意见 - .-)

    如何自定义角度材质2

    如何扩展角度组件样式

    当然他们没有得到任何答案,我无法自定义它们.如果我错了,请指导我.

检查上面提供的更新

MDC for Web

  • 缺点

    • 不适用于Angular

    如果你想以Angular的方式做,我们不能马上开始使用它.需要为每个组件编写Angular的包装器.可能需要一些努力.但每个团队都可以花一些时间进行定制,并且有第三方努力使其更容易.如果没有以角度方式做到这一点,我相信我们可以在没有包装的情况下开始.

    • 组件列表尚未完成(它们会越过时间,所以没关系)
  • 优点

    • 通用,不依赖于框架.投资总是安全的.
    • 更多贡献,因为其他框架开发人员也使用它.随着时间的推移,它获得了更多的贡献和未来证明(几乎)
    • 完全可定制.
    • 看似只有框架材料设计团队直接参与
    • 也可以使用移动设备的知识/样式.
    • 文档很棒.看起来付出了很多努力和时间.

  • 我想指出它们都是以严格的方式编写的,所以除了改变主题(读作"颜色")之外,你可以安全地做的事情并不多.你称MDC for Web"完全可定制",但你不能做一些简单的事情,比如改变工具栏的高度(见[这里是他们的回答](https://github.com/material-components/material-components-web/问题/ 348)关于这样的特征请求). (2认同)