Сегодня я узнал о создании сложных компонентов. Сложный компонент — это просто объединение компонентов вместе.

Я узнал, как вы можете объединить несколько компонентов в один div под переменной, чтобы вы могли отображать один компонент в DOM. В приведенном ниже примере я поместил все компоненты в div внутри переменной ColorSpectrum, чтобы затем отобразить это в DOM внизу кода. Раньше мне приходилось рендерить все цвета по отдельности.

var ColorSpectrum = function() {
return(
<div>
<Red/>
<Orange/>
<Yellow/>
<Green/>
<Blue/>
<Indigo/>
<Violet/>
</div>
)
}
var Red = function() {
var redStyle = {
height: 50,
width: 150,
backgroundColor: "red",
}
return(
<h1 style={redStyle}>Red</h1>
);
}
var Orange = function() {
var orangeStyle = {
height: 50,
width: 150,
backgroundColor: "orange",
}
return(
<h1 style={orangeStyle}>Orange</h1>
);
}
var Yellow = function() {
var yellowStyle = {
height: 50,
width: 150,
backgroundColor: "yellow",
}
return(
<h1 style={yellowStyle}>Yellow</h1>
);
}
var Green = function() {
var greenStyle = {
height: 50,
width: 150,
backgroundColor: "green",
}
return(
<h1 style={greenStyle}>Green</h1>
);
}
var Blue = function() {
var blueStyle = {
height: 50,
width: 150,
backgroundColor: "blue",
}
return(
<h1 style={blueStyle}>Blue</h1>
);
}
var Indigo = function(){
var indigoStyle = {
height: 50,
width: 150,
backgroundColor: "indigo",
}
return(
<h1 style= {indigoStyle}>Indigo</h1>
);
}
var Violet = function(){
var violetStyle = {
height: 50,
width: 150,
backgroundColor: "violet",
}
return(
<h1 style={violetStyle}>Violet</h1>
);
}
ReactDOM.render(
<ColorSpectrum/>
,
document.getElementById("app")
);

Затем я научился делать это с компонентами класса почти таким же образом. Класс Shapes обновляется компонентами <Circle/>, <Square/> и <Rectangle/> в div, а затем класс Shapes отображается в DOM вместо каждого отдельного компонента.

class Shapes extends React.Component {
render() {
return(
<div ><Circle/>
<Square/> 
<Rectangle/>
</div>
);
}
}
class Circle extends React.Component {
render() {
var circleStyle = {
width: 100,
height: 100,
background: "red",
borderRadius: "50%",
}
return(
<h1 style={circleStyle}>Circle</h1>
);
}
}
class Square extends React.Component {
render() {
var squareStyle = {
width: 100,
height: 100,
background: "red",
}
return(
<h1 style={squareStyle}>Square</h1>
);
}
}
class Rectangle extends React.Component {
render() {
var rectangleStyle = {
width: 200,
height: 100,
background: "red",
}
return(
<h1 style={rectangleStyle}>Rectangle</h1>
);
}
}
ReactDOM.render(
<Shapes/>,
document.getElementById("app")
);