@ohio_land

React-router-dom подключение стилей css?

Приветствую участников Тостера!
Вобщем делаю, что-то вроде сервиса статистики, все просто - выборка значений из базы и представление их в удобочитаемом виде. В начале у меня был рендеринг чисто на бекэнде(https://bottlepy.org), а на фронтенде максимум что подключалось это - jQuery.
Сейчас решил переписать и сделать на реакте полностью изоморфное приложение, с применением react-router-dom, ради эксперимента.
К сути вопроса. Имеем приложение из трех страниц:
<Switch>
      <Route exact path='/' component={Home}/>
      <Route path='/aboutus' component={AboutUs}/>
      <Route path='/contacts' component={Contacts}/>
    </Switch>

Каким образом подключать стили для каждой страницы? Сразу приходит в голову в самом компоненте рендерить тег "link" c путем до файла css, соответсвенно:
<link rel="stylesheet" type="text/css" href="/css/home.css" />
	  <link rel="stylesheet" type="text/css" href="/css/aboutus.css" />
	  <link rel="stylesheet" type="text/css" href="/css/contacts.css" />

можно ли использовать тег link в body или он только для header?
  • Вопрос задан
  • 866 просмотров
Решения вопроса 1
RomReed
@RomReed
JavaScript, Flutter, ReactNative, Redux, Firebase
вы можете поместить каждый ccs рядом с необходимым компонентом и импортировать
import ".css"

или вот так
.red {
  font-size: 25px;
  background-color: red;
  color: white;
}

import React from 'react'
import btn from './styles.css'

export default class CoolButton extends React.Component {
  render() {
    return (
      <button className={btn.red}>{this.props.text}</button>
    )
  }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@ohio_land Автор вопроса
А, то-есть описывать стили в контексте jsx, как компонент реакта? Роман Александрович не могли бы вы привести наглядный пример стилевого компонента и использования его в клиентском коде?
Ответ написан
@Frimko
а не лучше просто использовать styled?
Вы и модульность сохраните, и пересекаться классы никак не смогу(после правок в 3 ночи)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы