
В React компонентах есть два важных концепта: состояние (state) и свойства (props).
**props
Свойства (props) - это данные, которые передаются в компонент из вне, через атрибуты компонента. Они являются неизменяемыми immutable и могут быть доступны только для чтения внутри компонента. Свойства обычно используются для передачи данных от родительских компонентов к дочерним, и для настройки поведения компонента.
Например, в следующем коде свойство name передается в компонент MyComponent:
function MyComponent(props) {
return <div>Hello, {props.name}!</div>
}
ReactDOM.render(<MyComponent name="Alice" />, document.getElementById("root"))**state
Состояние state - это данные, которые управляются компонентом и которые могут изменяться в процессе работы приложения. Состояние является приватным для компонента и не может быть изменено извне. Обычно состояние используется для отслеживания изменений в компоненте и для обновления пользовательского интерфейса.
Например, в следующем коде компонент MyComponent имеет состояние count, которое увеличивается при нажатии на кнопку:
class MyComponent extends React.Component {
constructor(props) {
super(props)
this.state = { count: 0 }
}
handleClick() {
this.setState({ count: this.state.count + 1 })
}
render() {
return (
<div>
<p>Count: {this.state.count}</p>
<button onClick={() => this.handleClick()}>Increment</button>
</div>
)
}
}
ReactDOM.render(<MyComponent />, document.getElementById("root"))В целом, свойства (props) используются для передачи данных от родительских компонентов к дочерним, а состояние (state) используется для управления изменениями внутри компонента.
**Разница между state и props
state | props | |
|---|---|---|
| данные | могут изменяться и являются приватными для компонента | не могут изменяться |
| создаются | в компоненте, где необходимо изменить состояние | в родительском компоненте и передаются в дочерний, где и используются |