Состояние — это данные, которые меняются во времени и при изменении перерисовывают компонент. Его создают хуком useState:
import { useState } from "react";
function Counter() { const [count, setCount] = useState(0); return ( <button onClick={() => setCount(count + 1)}> Нажато: {count} </button> ); }
useState(0) возвращает пару: текущее значение (count) и функцию-сеттер (setCount). Аргумент 0 — начальное значение.
Менять состояние можно только через сеттер — нельзя писать count = count + 1 напрямую. Когда вы вызываете setCount, React запоминает новое значение и заново вызывает функцию-компонент — та возвращает обновлённую разметку, и React перерисовывает только изменившееся. Это и есть реактивность: интерфейс сам следует за данными.