在同一个 React 项目中使用两个 UI 库的缺点?

twe*_*ypi 14 javascript reactjs material-ui antd

我确信出于技术原因,这是一个坏主意,但还没有找到任何来源来解释它是否是或为什么。

假设我正在构建一个 React 网站,并且想要使用两个组件框架,比如 ant.design 和 material-ui,因为我喜欢 ant.design 所做的 90%,但我只是稍微更喜欢 material-ui 中的模态对话和想要将它们与 ant.design 组件结合使用。

他们俩似乎互相打得很好。

为什么这是一个坏主意?未来是否有潜在冲突?这会以某种方式增加膨胀吗?

小智 5

您可能想参考昨天提出的这个问题以获得一点提示:

如何让 Bootstrap 3 和 Ant Design 3 共存

正如上面指出的:

  • 膨胀- 不必要地包含您不需要的代码,这可以通过自定义构建来避免。
  • 复制/覆盖- 重复现有规则包含的代码或仅用于覆盖现有规则,使代码 50% 毫无意义。
  • 冲突- JS 代码冲突可能会引起问题,尤其是可能存在版本依赖性冲突。
  • 命名空间- 正如链接问题中所确定的,不可能为 antd css 命名空间以避免与引导程序发生冲突。
  • 代码样式- 没有两个库会以完全相同的方式实现,您会发现自己必须解决由此产生的问题。

根据我自己的经验,我从未找到过一个可以提供所有功能的库/套件,但我发现最接近的是 Ant Design。

从视觉上看,它可能不是最好的,并且可能存在一些开发人员不喜欢的实现/模式问题,但现实是,您需要构建的越少,交付的速度就越快,并且最终用户会比功能更关心它们将是您的应用程序的外观。你对这些事情的优先顺序肯定会与他们不同。

我个人很喜欢 Material UI 和其他的外观,如下所示:

https://hackernoon.com/23-best-react-ui-component-libraries-and-frameworks-250a81b2ac42

但现实是,您需要了解哪个框架和组件集可以提供您实际需要的最佳和最完整的功能。

就我而言,正如前面提到的,这是 Ant Design;是唯一拥有一组强大的 UI 组件(包括日期选择器等)的组件,而无需通过 NPM 将越来越多的组件添加到我的代码库中。