В чем разница между 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. Общее состояние поднимают к родителю.