React usePrevious Hook на TypeScript: предыдущее состояние без лишних зависим
Пошаговая реализация хука usePrevious в React на TypeScript: сохраняем предыдущее значение пропсов или стейта без дополнительных библиотек.
**Почему это полезно**
* Лёгковесно: всего 7 строк и никакого стороннего кода.
* Типобезопасно: полноценная поддержка TypeScript.
* Гибко: подходит для любых типов — стейт, пропсы, вычисляемые значения.
import { useRef, useEffect } from 'react';
function usePrevious<T>(value: T): T | undefined {
const ref = useRef<T | undefined>(undefined);
useEffect(() => {
ref.current = value;
}, [value]);
return ref.current;
}
// Пример использования в компоненте
import React, { useState } from 'react';
const Counter: React.FC = () => {
const [count, setCount] = useState<number>(0);
const prevCount = usePrevious(count);
return (
<div>
<p>Текущий счёт: {count}</p>
<p>Предыдущий: {prevCount}</p>
<button onClick={() => setCount(count + 1)}>Увеличить</button>
</div>
);
};
export default Counter;