@alfalab/hooks
Набор частоиспользуемых React-хуков
📦 Установка
yarn add @alfalab/hooks
🔨 Использование
import { usePrevious } from '@alfalab/hooks';
Состав
Подписка на событие mousedown
, touchstart
. При нажатии вне элемента вызывает переданный callback
Хук обратного отсчёта времени. Возвращает оставшееся количество секунд до определённой даты.
Вызывает коллбэк при изменении значений, переданных в зависимостях.
В отличии от useEffect — пропускает начальный рендер (аналог ComponentDidUpdate).
Хук для измерения DOM-элемента, в том числе в live-режиме
https://github.com/facebook/react/issues/14099#issuecomment-440013892
Подписка на событие focusin
, focusout
для конкретного события фокуса (клавиатура/мышка).
Возвращает true/false о состоянии фокуса на элементе или на одном из его дочерних элементов
Возвращает результат загрузки изображения — loading | loaded | error
Подписка на событие keydown
. При нажатии вне элемента вызывает переданный callback
Возвращает значение, которое соответствует сработавшему медиа-выражению
const [columns] = useMedia([
[1, '(min-width: 400px)'],
[2, '(min-width: 600px)'],
[3, '(min-width: 900px)'],
], 1);
Возвращает предыдущее состояние из useState
function Counter() {
const [count, setCount] = useState(0);
const prevCount = usePrevious(count);
return (
<h1>
Сейчас: {count}, до этого: {prevCount}
</h1>
);
}
Возвращает коллбек для принудительного ререндера компонента
Возвращает статус доступности компонента
Возвращает уникальный идентификатор
useLayoutEffect_SAFE_FOR_SSR
Хук для layout-эффекта с фоллбэком к обычному эффекту для сред, где layout-эффекты не должны использоваться (например, рендеринг на стороне сервера).