JS: React
Теория: Функциональные компоненты
Для создания компонентов React не обязательно использовать классы, существуют и альтернативные способы:
https://codepen.io/hexlet/pen/brXoER
Компоненты, созданные как функции, называются функциональными. Они принимают объект со свойствами как первый аргумент и также начинаются с большой буквы.
Функциональные компоненты стали превалировать над классовыми с появлением хуков. Они более лаконичны и позволяют писать чистый код. Еще у них нет своего изменяемого состояния, поэтому их легче тестировать и переиспользовать. В то же время, функциональные компоненты не включают методы жизненного цикла, что может ограничивать их использование. В следующем курсе мы начнем использовать функциональные компоненты и познакомимся с основными хуками React.
Пространства имён
Вспомните пример из прошлого урока, связанный с использованием компонентов-потомков, созданных специально для родительского компонента:
Следуя сказанному выше, компоненты <CardTitle> и <CardBody> должны быть реализованы как функциональные.
Но это еще не всё, можно пойти дальше и реализовать такую структуру:
JSX поддерживает механизм пространств имён. Не сказать, что без него нельзя жить, но он довольно удобен. Во-первых, достаточно импортировать только компонент верхнего уровня, а остальное доступно уже через него, что довольно логично, если смотреть на JSX как на JS-код. Во-вторых, так лучше задаётся семантика.
Реализуется подобный механизм через статические свойства.
https://codepen.io/hexlet/pen/brXooa
Такой способ компоновки не требует того, чтобы все компоненты были созданы в одном файле. Структура может быть любой, для остального есть импорты.




