Этот репозиторий содержит набор полезных кастомных хуков, которые позволяют писать более чистый и переиспользуемый код в проектах на React. Каждый хук сопровождается подробным описанием логики (doc.md), принципа работы и примерами использования (example.tsx).
В большинстве хуков используется useRef
для оптимизации производительности и других фичей.
useUpdateEffect
- выполняет эффект только при изменении зависимостей, но не на первом рендере.useLatest
- позволяет хранить и получать актуальное значение переменной без необходимости обновления состояния или создания зависимости в эффектах.usePrevious
- позволяет при рендере компонента получить предыдущее значение пропса, либо стейта.useWhyDidUpdate
- хук для отслеживания изменений в пропсах компонента и вывода их в консоль.useWindowEvent
- хук помогает безопасно подписываться на события в window.useEvent
- Возвращает стабильный колбэк, всегда вызывающий последнюю версию переданной функции (всегда актуальную).useIsMounted
- хук, определяющий, был ли компонент монтирован.useDebounce
- хук, при котором вызовы функции «откладываются» до момента, когда поток вызовов прекратится на заданный промежуток времени.useRafThrottle
- ...useEventListener
- хук для добавления обработчика (слушателя) события к DOM-элементу, на который ссылается переданный ref. Требует состояние active.useEventListenerCbRef
- хук, который с помощью callback-ref позволяет напрямую назначить обработчик (слушатель) элементу через его атрибут ref.useResizeObserver
- хук для правильного отслеживания изменений размеров DOM-элемента с использованием ResizeObserver, с использованием callback-ref.useCombinedRef
(useForkRef
) - хук, объединяющий несколько ref'ов в один callback ref.