Коротко
useState — это React Hook, который даёт функциональному компоненту локальное состояние: значение и функцию, чтобы его менять. После обновления состояния React перерисовывает компонент.
const [count, setCount] = useState(0);
Зачем спрашивают
Хотят понять, умеешь ли ты работать с реактивным UI, а не только «рисовать разметку». Это базовый хук — без него дальше (эффекты, формы, списки) обычно разговор короткий.
Как работает
- При первом рендере
useState(initial)сохраняет начальное значение. setCount(newValue)ставит обновление в очередь.- React делает новый рендер с актуальным
count.
Важно: нельзя мутировать старое значение «на месте». Для объектов и массивов создавай копию:
setUser(prev => ({ ...prev, name: "Анна" }));
Функциональная форма setState(prev => ...) нужна, когда новое значение зависит от предыдущего — так меньше гонок при быстрых кликах.
Типичные ошибки
- Вызывать хуки условно (
if (...) useState()— нельзя). - Класть в state огромные вычисляемые данные, которые можно посчитать из props.
- Думать, что
setStateменяет значение синхронно в следующей строке — нет, обновление асинхронное относительно текущего рендера.
Как ответить на собесе за 30 секунд
«useState хранит локальный state компонента. Возвращает пару: значение и setter. После setter React ре-рендерит. Для зависимого обновления использую функциональный setter, объекты не мутирую.»