В Angular 2+ у нас есть директива @component, в которой мы можем передать элемент-селектор, файл CSS, файл шаблона HTML, ... Мы делаем это по следующему фрагменту.
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
В Angular 2+ стили CSS являются локальными только для этого элемента HomeComponent. Поэтому я могу добавлять разные стили к разным компонентам, не влияя друг на друга.
AngularLayout.html
<section>
<app-home></app-home>
<app-about></app-about>
<app-contact></app-contact>
</section>
Для ReactJ я пытался добавить стили к различным компонентам, например,
LayoutHome.js
import React, { Component } from 'react';
import './LayoutHome.css';
class LayoutHome extends Component {
render() { return <span>home</span>; }
}
export default LayoutHome;
LayoutAbout.js
import React, { Component } from 'react';
import './LayoutAbout.css';
class LayoutAbout extends Component {
render() { return <span>about</span>; }
}
export default LayoutAbout;
ReactLayoutApp.js
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
import LayoutHome from './components/LayoutHome';
import LayoutAbout from './components/LayoutAbout';
class App extends Component {
render() {
return (
<section>
<LayoutHome/>
<LayoutAbout />
</section>
);
}
}
export default App;
Например, пусть './LayoutAbout.css' имеет следующий
span {
color: blue;
}
'. / LayoutHome.css' будет иметь следующий
span {
color: red;
}
Стили CSS сворачиваются друг с другом.
Каким может быть более чистый способ пометки CSS-файла локальным компонентом в ReactJs?