PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Зачем нужны props?

Продвинутые темы

`props` нужны, чтобы передавать данные от родительского компонента дочернему и делать компоненты переиспользуемыми и конфигурируемыми.

Зачем нужны

  • Передача данных вниз — от родителя к ребёнку (однонаправленный поток).
  • Переиспользуемость — один компонент отображает разные данные через props.
  • Конфигурация — настройка вида и поведения (варианты, флаги).
  • Коммуникация вверх — через колбэки-props ребёнок сообщает родителю о событиях.
function Button({ label, variant, onClick }) {
  return <button className={variant} onClick={onClick}>{label}</button>;
}

<Button label="Сохранить" variant="primary" onClick={save} />
<Button label="Отмена" variant="secondary" onClick={cancel} />

Один компонент — разные конфигурации через props.

Свойства props

  • Только для чтения — компонент не меняет свои props.
  • Передаются сверху вниз.
  • Могут быть любого типа: данные, функции, JSX (children).

props против state

  • props — снаружи, неизменяемы.
  • state — внутри, изменяемы.

Общее состояние поднимают к родителю и передают вниз как props.

Коротко для собеседования

props нужны для передачи данных от родителя к ребёнку, делая компоненты переиспользуемыми и конфигурируемыми; через колбэки-props ребёнок сообщает родителю о событиях. Props только для чтения, идут сверху вниз. Отличаются от изменяемого state.

Другие вопросы раздела