использовал для кейса, когда есть реф и у этого рефа current мог меняться во время жизни компонента.
вкратце:
const ref = useRef<HTMLDivElement>(null);
const prevRef = useRef<HTMLDivElement>(null);
useEffect(() => {
if (ref.current === prevRef.current) { return; }
prevRef.current = ref.current;
// реф поменялся, что-то делаем
});
по факту я здесь делаю то же самое, что происходит в депенденсах, но депенденсы непригодны:
1) [ref] - бесполезно, будет один и тот же, эффект не перевызовется
2) [ref.current] - бесполезно, реф меняется после фазы рендера.