Что такое компонент и какие виды компонентов бывают?
Компонент в React представляет собой независимый, изолированный и повторно используемый блок пользовательского интерфейса, который инкапсулирует в себе как визуальную разметку, так и логику поведения. С концептуальной точки зрения компоненты похожи на JavaScript-функции, которые принимают на вход произвольные параметры и возвращают описание того, как должен выглядеть конкретный участок веб-страницы.
Исторически и архитектурно в React выделяют несколько разновидностей компонентов, каждый из которых имеет свои особенности применения.
При проектировании архитектуры приложения крайне важно отдавать приоритет композиции компонентов, а не наследованию. Композиция позволяет строить сложные интерфейсы путем вложения простых независимых элементов друг в друга, что делает код гибким и легко тестируемым. Например, компонент модального окна может принимать любой контент через специальный пропс children, что делает его универсальным для всего приложения.