Back to questions
Middle
5
Для чего вообще нужен useState и почему мы не можем просто изменять переменную напрямую или использовать useRef?
Companies where asked
А7-Технологии
Answer from AI
sobes.tech AI
useState в React нужен для того, чтобы управлять состоянием компонента и автоматически инициировать повторный рендер при изменении этого состояния. Если просто изменить переменную напрямую, React не узнает об изменении и не обновит UI.
useRef хранит изменяемое значение, но изменение ref не вызывает перерисовку компонента, поэтому его используют для хранения данных, которые не влияют на отображение (например, таймеры, DOM-элементы).
Пример:
import React, { useState, useRef } from 'react';
function Counter() {
const [count, setCount] = useState(0); // изменение вызывает рендер
const countRef = useRef(0); // изменение не вызывает рендер
const incrementState = () => setCount(count + 1);
const incrementRef = () => { countRef.current += 1; console.log(countRef.current); };
return (
<div>
<p>State count: {count}</p>
<button onClick={incrementState}>Increment State</button>
<button onClick={incrementRef}>Increment Ref</button>
</div>
);
}
Здесь при нажатии на "Increment State" компонент перерисуется и обновит UI, а при "Increment Ref" — только изменится значение в ref, но UI не обновится.