【问题标题】:UI framework vs Styled-components to make UI from scratch in React?UI 框架与样式化组件在 React 中从头开始制作 UI?
【发布时间】:2019-02-12 05:51:07
【问题描述】:

我最近开始接触 React,所以我对很多事情都感到很困惑。其中之一是关于大多数人如何在 React 中设计 UI。

在开始之前,我使用 Bootstrap 通过使用按钮、模式视图、导航等预制组件来设计我的网站的 UI。但是,发现我不能再在 React 中使用它,但我可以使用 React-Bootstrap 代替。 React-Bootstrap 仍然是 React 中最流行的 UI 框架吗?我之所以这么问,是因为我发现了一些其他 UI 框架,例如 Semantic UI 或 React 的 Material UI。

另外,我找到了styled-components。但是,styled-components 让我觉得我需要自己制作每个组件才能使用,这听起来需要很长时间。

作为一个非常初学者,我很好奇人们通常如何在 React 中处理 UI?

【问题讨论】:

  • 你仍然可以在没有这些库的情况下使用引导程序进行反应,你只需要为你的元素(按钮、链接等)添加正确的类名。 react-bootstrap 为您提供了一组可供使用的组件,但并非强制使用它。实际上,如果您打算使用 bootstrap 4,您可能会对 reactstrap github.com/reactstrap/reactstrap 感兴趣。 Material UI material-ui.com 不错,github上有40k stars...
  • 如果我使用react-boostrap 而不是普通的Bootstrap,会有更好的兼容性吗?另外,我正在使用 Webpack。在那种情况下,我使用它们中的任何一个都没有关系吗?
  • Material UI 和 styled-components 在 JS 中使用 CSS,而 Semantic 和 React-Bootstrap 采用传统的 css/sass/less 路线。使用 styled-components 或情感似乎意味着编写更多组件(我的意思是这样),但您也可以从更多地分解代码中受益,并且可以封装样式
  • 它将更容易与react-boostrap 集成,因为它将成为bootstrapreact 之间的粘合剂。看看这个例子react-bootstrap.github.io/components/modal/#modals-live它向你展示了如何通过将属性传递给模态来显示/隐藏模态,如果没有库,你将不得不自己完成所有这些逻辑
  • 周围还有许多其他响应式 UI 库

标签: reactjs


【解决方案1】:

首先,这个问题没有明确的答案。一般styled-components 并不意味着不要使用另一个ui framework。这些公司通过他们的工程团队解决了特殊的问题。不过他们有自己的架构。但是单独的程序员会选择一些开源的解决方案。

好吧,有些人一起或单独使用。这完全是关于你的项目或你的建筑风格。但我还是会说一些东西来表达观点。

另一方面; UI 框架 用于解决模块化问题。一个例子:即使styled-components,您也不能仅使用 css 创建 模态。你知道,你需要 JavaScript。

同时使用:

  • 您可以在元素上使用 Semantic-UI(ReactJS 或直接使用 className 的元素),
  • 您可以使用styled-components 而不是css 文件 用于您项目的特定部分。例如:MainAsideArticlePostTopNavigation 等。
  • 如果你喜欢使用styled-components,你也可以在React Native中使用相同的组件。 (React Native 不支持 css 文件。您需要 inline CSS
  • 如果只使用div 而不是特定组件,你会在项目变大后感到困惑。我建议您为每个有意义的元素创建。
  • 您可以将开源社区 UI 部分与您自己的 CSS 结合起来。
  • 当您使用 styled-components 时,您将不需要 CSS(Less, Sass) 文件。这意味着,您将只处理 JS 文件而不是 CSS 文件,因此您可以在组件中执行动态操作。 styled-components 支持几乎所有 CSS 功能。

要使用独立的 Semantic-UI:

我更喜欢 Semantic-UI-React 而不是 ReactJS 引导框架。

  • 你不能在 React Native 中使用 Semantic-UI-ReactCSS。您应该选择哪一个是另一种解决方案,或者自己创建自己的组件架构。
  • 您已准备好使用Semantic-UI-React 为网站/移动网站处理每个项目。
  • 您必须学习 less-lang 的基础知识。
  • 您可以从variables 的主题文件中更改所有内容。

最后,

  • 如果你有大项目或目标; 尽管如此,我认为你应该在学习和适应过程中使用UI Framework
  • 如果你仍然不确定你应该做什么,你必须尝试所有这些来找到你自己的架构
  • 我认为在学习过程中,在CSS。

这是我在 Stackoverflow 上的第一个答案。希望答案能帮助您解决您的问题。

【讨论】:

  • 感谢您给我自己的意见!我对Material Design 感到困惑。我找到了Material-UI,我认为Materia-UI 对我来说是最好的选择。你说Material Design没有官方支持,是不是错了?
  • 是的。它缺少信息。我的错。我想我的知识已经过期了。 ReactJS 没有官方的现成库。可以查看旧文章gistia.com/react-material-ui-design。这就是为什么我也很困惑。但仍然没有关于官方图书馆的信息。也许谷歌选择支持那个库。对此我不确定。对不起。但它现在看起来仍然像一个关于兼容性的官方库。
猜你喜欢
  • 1970-01-01
  • 2020-12-31
  • 2018-09-14
  • 2018-10-08
  • 2020-08-01
  • 2021-01-08
  • 2020-05-03
  • 2021-04-24
  • 2021-11-22
相关资源
最近更新 更多