@react-hook/size
v2.1.2
Published
A React hook for measuring the size of HTML elements including when they change
Downloads
369,535
Maintainers
Readme
A React hook for measuring the size of HTML elements including when they change
Features
- [x] Determines the size of the element including any padding, borders, and scroll bars.
- [x] The size reported by the hook updates each time the size of the element changes.
- [x] Uses a single
ResizeObserver
for tracking all elements used by the hooks. This approach is astoundingly more performant than using aResizeObserver
per element which most hook implementations do. - [x] Uses
@juggle/resize-observer
as a ponyfill whenResizeObserver
isn't supported by the current browser. - [x] Automatically unobserves the target element when the hook unmounts.
Quick Start
Check out an example on CodeSandbox
import * as React from 'react'
import useSize from '@react-hook/size'
const Component = () => {
const target = React.useRef(null)
const [width, height] = useSize(target)
return (
<div ref={target}>
<div>Width: {width}</div>
<div>Height: {height}</div>
</div>
)
}
API
useSize(target, options?)
| Argument | Type | Required? | Description |
| -------- | ---------------------------------------------------- | --------- | --------------------------------------------------------- |
| target | React.RefObject | T | null | Yes | A React ref created by useRef()
or an HTML element |
| options | UseSizeOptions
| No | Options for SSR. See UseSizeOptions
. |
UseSizeOptions
export interface UseSizeOptions {
// The initial width to set into state.
// This is useful for SSR environments.
initialWidth: 0
// The initial height to set into state.
// This is useful for SSR environments.
initialHeight: 0
}
LICENSE
MIT