npm i @accessible/use-id
Creates unique deterministic IDs to facilitate WAI-ARIA and server rendering. Forked from @reach/auto-id.
import useId from '@accessible/use-id'
const Component = () => {
const id = useId()
return <div id={id} />
// <div id='A:1'>
}
A hook that returns a unique, but deterministic ID once per component
Argument | Type | Default | Required? | Description |
---|---|---|---|---|
fallbackId | string | null | 0 | false |
undefined |
No | Allows you to provide your own id as a fallback |
prefix | string |
🅰 |
No | Allows you to provide a prefix for the id to prevent collisions with other auto id libs |
This library is a fork of @reach/auto-id
Reach UI doesn't use real semantic versioning (each of their packages updates versions at the same time regardless of
changes to individual packages... nonsense) so it's possible (and annoyingly so) that you could easily wind up with duplicate
version of the auto-id
package in your bundle. Lastly, the Reach library throws super annoying warnings
in SSR because it uses useLayoutEffect
. This library uses @react-hook/passive-layout-effect
to avoid that.
MIT