Суть
React строит страницу из самостоятельных кубиков
Компонент (component) — это переиспользуемый самостоятельный кусок интерфейса. Кнопка, карточка товара, форма, шапка сайта — каждый из них живёт в своём компоненте.
Внутри компонента собраны вместе разметка, логика и внешний вид одного конкретного куска экрана. Это значит: хотите поправить карточку — идёте в один файл, а не ищете её фрагменты по всему коду.
Чтобы один и тот же компонент показывал разные данные — например, карточку кофе и карточку чая — ему передают пропсы (props, properties, параметры компонента). Пропсы работают ровно как аргументы функции: задаёте снаружи, компонент использует внутри.1
Компоненты вкладываются друг в друга, образуя дерево компонентов — иерархию, из которой складывается вся страница: маленькие компоненты (кнопки, поля ввода) входят в средние (форму, карточку), те — в крупные (секцию страницы, саму страницу).2
<ProductCard name="Кофе" price={500} />
<ProductCard name="Чай" price={300} />
Это JSX (разметка React) — один и тот же компонент ProductCard, разные пропсы → две разные карточки на экране.
📌 Правило «одна форма — много кексов»: если на странице несколько похожих блоков — скорее всего, это один компонент с разными пропсами, а не разный код для каждого.