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

В чем разница между state и props?

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

`state` — это внутреннее изменяемое состояние компонента, а `props` — входные данные, приходящие снаружи и доступные только для чтения.

props

  • Передаются от родителя к дочернему компоненту.
  • Иммутабельны — компонент не меняет свои props.
  • Меняются только при новом рендере родителя.
function Greeting({ name }) {
  return <h1>Привет, {name}</h1>; // name — props
}

state

  • Внутреннее состояние компонента.
  • Изменяемое — через setState/сеттер хука.
  • Изменение вызывает перерисовку.
function Counter() {
  const [count, setCount] = useState(0); // count — state
  return <button onClick={() => setCount(count + 1)}>{count}</button>;
}

Различия

  • Источник: props — снаружи (родитель); state — внутри компонента.
  • Изменяемость: props — только чтение; state — изменяемо.
  • Кто управляет: props — родитель; state — сам компонент.

Взаимодействие

Родитель может хранить state и передавать его ребёнку как props («поднятие состояния» — lifting state up). Ребёнок сообщает наверх через колбэки-props.

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

props — входные, только для чтения данные от родителя; state — внутреннее изменяемое состояние компонента, при смене которого происходит перерисовка. Родитель управляет props, компонент — своим state. Общее состояние поднимают к родителю.

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