@rozhkov/react-useful-hooks
Version:
Useful hooks for React application
17 lines (16 loc) • 531 B
JavaScript
import { useRef } from 'react';
import usePrevious from './usePrevious';
import useIsFirstRender from './useIsFirstRender';
const defaultCompare = (v1, v2) => v1 === v2;
const useChangeCounter = (value, compare = defaultCompare) => {
const isFirstRender = useIsFirstRender();
const counterRef = useRef(0);
const prev = usePrevious(value);
if (!isFirstRender) {
if (!compare(prev, value)) {
++counterRef.current;
}
}
return counterRef.current;
};
export default useChangeCounter;