Ответ
Плюсы:
- Переиспользование – компоненты можно использовать многократно
- Изолированность – каждый компонент управляет своим состоянием
- Простота поддержки – легче вносить изменения в отдельные части
- Модульность – компоненты можно разрабатывать независимо
- Тестируемость – проще тестировать изолированные компоненты
Минусы:
- Оверхеад – избыточность для простых проектов
- Пропс-дриллинг – сложность передачи данных через много уровней
- Производительность – лишние ререндеры при неправильной оптимизации
Пример React-компонента:
function Button({ onClick, children }) {
return <button onClick={onClick}>{children}</button>;
}