Стейт в React
НАВИГАЦИЯ ПО СТРАНИЦЕ
Определение стейта в React :
Стейт (State) в React представляет собой объект, который используется для хранения и управления локальными данными компонента.
Каждый компонент в React может иметь свой собственный стейт, который может изменяться в процессе выполнения приложения.
Функциональные компоненты с использованием хука useState:
import React, { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>Count: {count}</p>
<button onClick={() => setCount(count + 1)}>Increment</button>
</div>
);
}
Классовые компоненты:
import React, { Component } from 'react';
class Counter extends Component {
constructor(props) {
super(props);
this.state = { count: 0 };
}
render() {
return (
<div>
<p>Count: {this.state.count}</p>
<button onClick={() => this.setState({ count: this.state.count + 1 })}>
Increment
</button>
</div>
);
}
}
Обновление стейта и перерендеринг :
Стейт следует изменять с использованием функции, предоставляемой React, чтобы гарантировать корректное обновление, особенно при асинхронных операциях.
Функциональные компоненты:
import React, { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
const increment = () => {
setCount(prevCount => prevCount + 1);
};
return (
<div>
<p>Count: {count}</p>
<button onClick={increment}>Increment</button>
</div>
);
}
Классовые компоненты:
import React, { Component } from 'react';
class Counter extends Component {
constructor(props) {
super(props);
this.state = { count: 0 };
}
increment = () => {
this.setState(prevState => ({ count: prevState.count + 1 }));
};
render() {
return (
<div>
<p>Count: {this.state.count}</p>
<button onClick={this.increment}>Increment</button>
</div>
);
}
}
Обновление стейта вызывает перерендеринг компонента, что позволяет React обновить отображаемый пользовательский интерфейс в соответствии с новыми данными состояния. Важно помнить, что стейт следует изменять неявно, используя функции обновления, чтобы избежать проблем с асинхронностью и обеспечить правильное обновление состояния.