【问题标题】:Understanding how to approach styling in React了解如何在 React 中处理样式
【发布时间】:2017-11-16 18:49:27
【问题描述】:

我是学习 React 的新手。作为我学习的下一个阶段,我需要学习如何设置 React 样式。根据以前的经验,我需要采取的步骤来设置我的 React 应用程序的样式是:

  1. 添加重置 CSS
  2. 实施网格系统
  3. 为(按钮、标题)等项目实现通用样式
  4. 为每个组件实现特定样式

在 React 世界中,要找到一个好的起点来解决上述问题是一项挑战,所以我希望有人能给我指出正确的方向。

对于上面列出的所有 4 个项目,样式化组件是目前 React 世界中最流行的事情吗?如果没有,你有什么建议我开始学习处理上面提到的项目。

【问题讨论】:

    标签: reactjs styled-components


    【解决方案1】:

    如果你是从 React 开始的,如果不先了解 styled-components 试图解决的问题,我不会使用像 styled-components 这样的深度内容。

    您的第一种方法应该是基本的,只需将一个或多个<link>s 添加到您的.css 文件(例如reset.css、grid.css、其中的组件选择器等)并使用正确的classNames组件中的道具:

    // main.css
    body {
      // ...
    }
    
    // MyToolbar.css
    .MyToolbar {
      // style for a MyToolbar react component
    }
    

    在您的 html 中:

    <html>
        <head>
           <link rel="stylesheet" type="text/css" href="reset.css">
           <link rel="stylesheet" type="text/css" href="main.css">
           <link rel="stylesheet" type="text/css" href="grid.css">
           <link rel="stylesheet" type="text/css" href="MyToolbar.css"> 
    

    随着您的应用程序的增长,您会发现很难维护这个&lt;head&gt;,因此您将受益于更加模块化的方法。

    例如,您的下一步可能是从 javascript 导入 CSS,而不是在标题中使用 &lt;link&gt;

    // App Component
    import React from 'react';
    
    // import globally used styles
    import './styles/reset.css';
    import './styles/main.css';
    
    export default class App extends React.Component {
    // snip
    }
    

    要在 JavaScript 中导入 CSS 文件,您需要使用像 webpack 这样的模块捆绑器来处理这些 imports 语句。从这里开始阅读:https://webpack.js.org/guides/asset-management/#loading-css。这样做你就不需要手动&lt;head&gt; 中的 CSS 文件。

    事实上,您可以从组件中导入 CSS:

    // MyToolbar.js component
    import React from 'react';
    import './styles/MyToolbar.css';
    
    export default class MyToolbar extends React.Component {
       render() {
          // render your component here
       }
    }
    

    一旦您的应用发展壮大,您可能想要尝试其他解决方案,例如样式组件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-16
      • 1970-01-01
      • 2021-11-05
      • 1970-01-01
      • 2020-11-15
      • 1970-01-01
      • 1970-01-01
      • 2013-11-08
      相关资源
      最近更新 更多