Вопрос проверяет понимание механизма обновления компонентов и роли state.
React отслеживает изменения состояния и props, а не обычных переменных. Если изменить обычную переменную, React об этом не узнает и не запустит повторный рендер. Для обновления интерфейса нужно использовать useState или другой механизм управления состоянием. Это позволяет React контролировать обновления и оптимизировать рендеринг.
React рендерит компоненты на основе state и props, а не любых переменных.
React реагирует на:
Изменение state.
Изменение props.
Иногда — изменение context.
Обычные переменные не отслеживаются.
let count = 0;
function App() {
function handleClick() {
count++;
console.log(count); // меняется, но UI нет
}
return <button onClick={handleClick}>{count}</button>;
}
Причина:
React не знает, что переменная изменилась.
Ререндер не запускается.
Использование state:
const [count, setCount] = useState(0);
function handleClick() {
setCount(count + 1);
}
Управляемые обновления.
Предсказуемость.
Оптимизация производительности.
Если бы React отслеживал любые переменные:
Это было бы очень дорого.
Поведение стало бы нестабильным.
Вывод: React запускает ререндер только при изменении state или props, поэтому обычные переменные не подходят для хранения данных интерфейса
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию