Rest的Bootstrap vs Material UI?

时间:2018-06-13 07:24:05

标签: reactjs bootstrap-4 material-ui

我一直在我的项目中使用它们,有时我发现需要在引导程序组件中使用Material UI组件,并且UI显示为我所期望的。我被告知不要使用这种方法。是否有任何理由因为两者都在使用网格并且可以弯曲?

5 个答案:

答案 0 :(得分:5)

我倾向于冗长,因此我将简洁的答案放在这里:

结论:

  

无论谁说都不好用可能只是表达他们的意思   意见,实际上是说同时使用这两种方法确实很缺乏上下文,这很不好   在您的设计中。 @ user3770494提出了一个很好的观点-但   要点,虽然有效且真实地了解构建大小,但这确实取决于   应用范围。如果是内部办公应用程序   光纤网络本地的每个人都将被缓存在内存中   无论如何...但是(不是你认识我)我不会否定地评价你   如果您将它们混合在一起-除非是针对百万主要用户   在移动设备(非常低的设备),台式机和其他设备上运行的应用程序   世界各地需要实时更新的设备,以及   在任何条件下以10000s的活跃用户流式传输动态内容   时间24/7。

     

说实话-如果不是生死攸关-我想同时使用-和   自己做。多了解一件事的经验是   更好,然后针对个人进行“致力于单一解决方案”   增长。


此阅读的其余部分是可选的-不用客气:)

我个人在生产应用程序中都使用过(同时使用和独立使用) ...我也从头开始使用了所有内容... (CSS是我最不喜欢的部分我所做的工作-幸运的是我有一个很擅长的同事)这是我的想法:

警告::我倾向于冗长。

免责声明:

作为一个喜欢功能胜于形式的人,形式是一种事后挑剔的选择,让客户询问一些微小的变化。我将尽我所能,不让我对“每个选项如何寻找感觉”保持看法。

我也正在用我当前选择的方法来研究您的问题-它正在使用ReactJS / create-react-app为触摸屏嵌入式系统制作“演示”项目-因此,我将推出一半十个用于演示的模拟程序,什么也做不了(CCscanner,条形码扫描器,gps,网络摄像头集成,类似这样的有趣东西)。因此,我正在研究对于我来说,“因为我很无聊并且得到了pi3b + board来取乐,这很容易”。

答案:

  • 如果您有时间,奉献精神和资源,那么真的有 将它们混合在一起没有错。但是你只需要思考 关于它的时间/成本/收益。 DIY使最终用户满意- 即使将它们混合。完全由您自己来制作轮子,但是您 可以随时添加boostrap样式等。

  • 与生俱来的风险是,如果您同时使用这两种方法,请确保不要将它们“大量混合”,因为那样一来,您尝试时就会遇到问题 可以对任何一个进行版本更改。

  • 我喜欢很多MaterialUI的东西,但是老实说,我不喜欢一些东西的外观(默认情况下为样式明智)-从功能上讲,我更喜欢 然后进行引导,但同时,我不喜欢MaterialUIs React 编程风格(作为一个讨厌CSS的纯粹主义者,但知道它的重要性 它是-必须使用!永远重要...很大很大 与我和我的同事使用的任何方式进行比较 约定。不说我自己好还是坏 偏好-但是关于它的一些事情真的让我很生气(即使它们是 是有充分理由的。)

  • Bootstrap有很多选择可以使用-我喜欢它看起来更好,我喜欢它与ReactJS一起玩的方式-但是有 reactstrap vs. react-bootstrap(这就是为什么我发现您的帖子试图 来确定我要在演示中使用哪一个)。

  • 最近(对于生产项目),我确实尝试只坚持一种,但是通常我会制作功能超越形式的系统。所以 他们并不太在乎UI元素,而是 如何使用它不能使它漂亮。所以我坚持只用一个 只是为了让我的工作更轻松-通常我自己仍然会忽略样式 ...如果原始样式惹恼了我。但是我不坚持 因为“同时使用这是一种不好的形式”,我为此只坚持一个 上面提到的原因。我实际上是说带宽不是 问题-同时使用两者的质量-但只能使用其中一部分 您实际使用的。

(我注意到有人曾经导入完整的jQuery,当时他们从中使用的唯一东西是$ .ajax(虽然很多,但仍然如此)……我想……那不是矫kill过正吗?!)- -因此,如果您同时使用两者并希望保持精简-请确保在编译时仅导入您正在使用的内容。用Python的方式来说,我是说-永远不要从模块中使用import *(但是,您在Javascript中将其表达为一个概念-webpack / gulp / whomever应该为您解决大部分问题)。假设您使用的是ES6 / 7样式的Javascript。

答案 1 :(得分:4)

您绝对可以同时使用两者,但您应该注意以下几点:

  • 除非您花费时间和精力通过从每个库中精心挑选元素来进行管理,否则提供的功能会有很多重叠。即使这样,您仍将面临无法避免重叠的情况。这基本上会导致更大的捆绑包。
  • 您将必须维护两个系统的主题变量,才能在您的应用程序中具有一致的表示。即便如此,在某些情况下,您的表复选框与表单复选框看起来也不同,因为它们来自不同的库。
  • 您必须学习和理解这两个系统。这意味着有时很难找到导致某个错误的原因。您还将花费更多的时间来决定将哪个库用于哪个组件。

总的来说,使用两个不同的系统需要做更多的工作,并且看起来不一致的可能性更大。也就是说,在主题有限的网格系统中进行混合可能并不算太糟糕。

如果可能的话,我强烈建议您选择一个系统并坚持使用。

答案 2 :(得分:3)

我最近遇到了这种情况,因此选择同时使用这两种方法,但只能用于特定任务。有了它,响应式Web应用程序Bootstrap才最有意义地用于小部件的布局和Material UI(这只是我个人的喜好)。

答案 3 :(得分:2)

使用两者将增加您的生产js大小。

材质Ui和bootstrap都提供了按钮等基本样式的组件,因此请选择一个。

您只能将bootsrap网格用于结构,甚至可以使用flex。

答案 4 :(得分:1)

材质UI或引导程序 我更喜欢bootstrap更经典 你也可以尝试一下antd https://ant.design/docs/react/introduce 他们也有网格系统,它非常有用