Skip to content

useTrackedEffect

Category
Export Size
220 B
Last Changed
5 days ago

useEffect that also reports which dependencies changed.

Demo

Usage

tsx
import { 
useTrackedEffect
} from '@reause/shared'
// one effect that refetches several things, reacting only to the dep that moved
useTrackedEffect
((
changes
,
previousDeps
,
currentDeps
) => {
if (
changes
?.
includes
(0))
refetchA() if (
changes
?.
includes
(1))
refetchB() }, [a, b])

Type Declarations

ts
type Effect<T extends DependencyList> = (changes?: number[], previousDeps?: T, currentDeps?: T) => void | (() => void)

export function useTrackedEffect<T extends DependencyList>(effect: Effect<T>, deps?: [
    ...T
]): void

Source

Source · Demo · ahooks

Contributors

hairyf

Changelog

v0.1.7 on
2a681 - feat(shared): add useTrackedEffect (#947)

Released under the MIT License. v0.1.8