задача — показать разные компоненты в зависимости от ширины устройства;
Я придумал два варианта:
<DeviceChecker>
<Desktop>
<List/>
</Desktop>
<Mobile>
<Carousel/>
</Mobile>
</DeviceChecker>Что мне не нравится в этом подходе, так это проверка ширины при изменении размера окна.
<div>
<Carousel className = "sm" />
<List className = "md" />
</div>что мне не нравится в этом случае, так это то, что React на самом деле будет отображать оба компонента, но один из них будет просто скрыт
Я знаю как реализовать оба варианта, но вопрос Какой из них является правильным способом написания адаптивных макетов для приложений React?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


@media only screen and (min-width: 768px) {
section.dashboard .slick-list .slick-track {
display: flex;
}
section.dashboard .slick-list .slide {
opacity: 1;
}
header .wrapper .article h1 span.arrow {
display:none;
}
header .wrapper .article .description {
max-height: 300px
}
}
@media only screen and (min-width: 1024px) {
.container header .wrapper {
text-align:left;
margin-left:5%;
width:480px;
}
.container header .header-nav-area #nav_container {
display:flex;
}
.container header form {
display:block;
}
.container header .menu-icon {
display:none;
}
header .wrapper .article footer {
display: block;
}
section.dashboard .slick-list .slick-track {
display: flex;
min-width: 309px;
padding: 20px;
}
section.dashboard .slick-list .slick-track[index = "2"] {
display: flex;
}
section.dashboard .slick-list .slide {
opacity: 1;
}
} Для получения более подробной информации посетите; https://itnext.io/3-ways-to-implement-responsive-design-in-your-react-app-bcb6ee7eb424