Встречается на собеседованиях • сегодня

Как в useState сохранить первоначальное состояние чтобы компонент не перерендовался

Для сохранения первоначального состояния без перерендера используйте useRef или useState с функцией-инициализатором.

С useRef:

jsx
const initialValue = props.value;
const ref = useRef(initialValue);
// ref.current всегда будет равен initialValue

С useState (функция-инициализатор):

jsx
const [state] = useState(() => computeExpensiveInitialValue());
// Вычисляется только при первом рендере

Почему не просто useState(initialValue)?
Если initialValue вычисляется динамически (например, props.value), при каждом рендере он будет пересчитываться, хотя React использует только первое значение. Функция-инициализатор решает эту проблему.

useRef подходит, если нужно сохранить значение без триггера ререндера.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы