Вопрос проверяет понимание работы useRef и useEffect для хранения предыдущего значения пропса в React.
В React нет встроенного способа получить предыдущее значение пропса, но это можно сделать с помощью хука useRef в сочетании с useEffect. useRef создает объект, который сохраняет свое значение между рендерами, не вызывая повторный рендер при изменении.
Создайте ref, который будет хранить предыдущее значение. Внутри useEffect обновите ref.current после того, как вы его использовали. Таким образом, при следующем рендере ref.current будет содержать предыдущее значение.
import { useRef, useEffect } from 'react';
function usePrevious(value) {
const ref = useRef();
useEffect(() => {
ref.current = value;
}, [value]);
return ref.current;
}
function MyComponent({ count }) {
const prevCount = usePrevious(count);
return (
<div>
<p>Текущее: {count}</p>
<p>Предыдущее: {prevCount}</p>
</div>
);
}Этот паттерн полезен для сравнения текущего и предыдущего значений пропсов, например, для анимаций, логирования или условных эффектов. Он прост в реализации и не требует дополнительных библиотек.
Уровень
Рейтинг:
4
Сложность:
5
Навыки
JavaScript
React
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию