Импортированные стили в ReactJS

177
15 июля 2019, 17:00

Делаю приложение на ReactJS.

Есть два "модуля" - Admin, Operator.

У каждого модуля свои стили. Есть конечно общие стили. С этим проблем нет. Но вот есть стили которые относятся к модулю. Я их импортирую в компоненте страницы модуля (к примеру LoginPage), к примеру так:

import '../../style/page/auth/style.css';
import '../../style/page/auth/media.css';
import '../../style/page/auth/custom.css';

Но вот проблема в том что все стили, со всех страниц и модулей вставляются в head страницы. И стили будут перебиваться.

Как это пофиксить? что бы в head вставлялись стили только для нужного модуля.

в index.js у меня есть роутер:

<Router>
    <Switch>
        <Route path="/admin" component={AdminModule}/>
        <Route path="/operator" component={OperatorModule}/>
        <Route component={NotFoundPage}/>
    </Switch>
</Router>
Answer 1

Никак. Вы правильно заметили что все стили при компиляции проекта созданного c помощью create-react-app объединяются и помещаются в <head></head>

Следуйте каким-то конвенциям при написании стилей, например БЭМ чтобы избежать перезаписи стилей.

Альтернативным решением является создание собственной кофигурации на Webpack, но я бы не советовал такой подход, потому что в данном случае он является скорее "костылем" нежели решением. create-react-app + конвенция для стилей = Best Practice

READ ALSO
SharedPreferences подружить с веб-приложением webView

SharedPreferences подружить с веб-приложением webView

Пишу веб-приложение на связке php/js/html, и через Andriod Studio конвертирую его в приложение для плеймаркета

123
Что значит return в JavaScript?

Что значит return в JavaScript?

При изучении JavaScript, я дошел до returnНе понимал для чего это надо

132
Автозапуск видео IFrame в Yandex Browser и Chrome

Автозапуск видео IFrame в Yandex Browser и Chrome

Поместил видео с YouTube в теле сайта, используя IFrame APIЕсть ли возможность обойти блокировку автозапуска со звуком видео в браузере Yandex Browser и Chrome?

145
Не работает import из Chunk в Chunk

Не работает import из Chunk в Chunk

Этот файл импортирован через const Areas = () => import( /* webpackChunkName: "radar" */ '/radar/Areas

131