React 样式/css/sass 顺序

Posted

技术标签:

【中文标题】React 样式/css/sass 顺序【英文标题】:React style/css/sass order 【发布时间】:2019-04-14 07:50:18 【问题描述】:

我有我的“应用程序组件”和一个在我的应用程序组件中呈现的“B 组件”。每个都有自己的风格。

但是当它被编译时,我的 ComponentB.css 被放在我的 app.css 之前,使得 ComponentB 样式被我的应用样式覆盖。

为什么会这样??

应用程序

 import React,  Component  from 'react';
 import ComponentB from './components/ComponentB';
import './styles/app.css';

    class App extends Component 
      render() 
        return (
          <div className="App">
            <ComponentB />
          </div>
        );
      
    

    export default App;

组件 B

import React,  Component  from 'react';
import './styles/ComponentB.css';

class ComponentB extends Component 
  render() 
    return (
      <div>
        <h1>Hello from ComponentB</h1>
      </div>
    );
  


export default ComponentB;

【问题讨论】:

例如,我的规范化 css 将其导入我的 app.css 但在编译时将我的 componentB.css 放在我的 app.css 之前。 【参考方案1】:

您这样做的方式会导致样式冲突(一种样式覆盖另一种样式),因为在 React 编译您的代码之后,您仍然对相同的类使用相同的选择器。 如果你想为不同的组件使用不同的css文件,同时使用相同的类名,你应该使用CSS modules。

这将使您的 CSS 类名默认在本地范围内。

【讨论】:

以上是关于React 样式/css/sass 顺序的主要内容,如果未能解决你的问题,请参考以下文章

基于react-create-app和nodejs搭建项目

React 组件样式被全局样式覆盖

地表最强专业级CSS扩展语言Sass

CSS/SASS:媒体查询没有被读取/看到[重复]

如何在 webpack 中以正确的顺序导入样式

Webpack ExtractTextPlugin - 避免输出 css 中的重复类