@wordpress/compose package provides a collection of useful React hooks and higher-order components (HOCs) for building WordPress components with enhanced functionality.
Installation
Function Composition
compose
Composes multiple HOCs into a single HOC (right-to-left).pipe
Composes functions left-to-right.Common Hooks
useInstanceId
Generates unique instance IDs for components.usePrevious
Retrieves the previous value of a prop or state.useMediaQuery
Responds to media query changes.useViewportMatch
Checks if viewport matches WordPress breakpoints.Debounce and Throttle
useDebounce
Debounces a function call.useThrottle
Throttles a function call.useDebouncedInput
Helper hook for debounced input fields.Focus Management
useFocusOnMount
Focuses an element when component mounts.useFocusReturn
Returns focus to previous element on unmount.useConstrainedTabbing
Constrains tab navigation within an element.Refs and Effects
useMergeRefs
Merges multiple refs into one.useRefEffect
Effect-like ref callback with cleanup.useEvent
Creates stable callback with latest values.Resize Observer
useResizeObserver
Observes element size changes.Keyboard Shortcuts
useKeyboardShortcut
Attaches keyboard shortcut handlers.Copy to Clipboard
useCopyToClipboard
Copies text to clipboard on click.Async Operations
useAsyncList
Asynchronously appends items to a list.Accessibility
useDisabled
Disables all focusable elements within a container.useReducedMotion
Detects user’s reduced motion preference.State Management
useStateWithHistory
State with undo/redo functionality.Higher-Order Components
withInstanceId
Provides unique instance ID as prop.withSafeTimeout
Provides timeout functions that auto-cleanup.Utilities
createHigherOrderComponent
Helper for creating HOCs with proper display names.Observable Map
observableMap
Creates an observable key-value store.Best Practices
- Memoize Dependencies - Always provide dependency arrays to hooks
- Cleanup Effects - Use
useRefEffectfor effects needing cleanup - Stable Callbacks - Use
useEventfor callbacks used in effects - Compose Wisely - Order HOCs carefully for proper prop flow
- Test Accessibility - Always test focus management features