use-element-size
TypeScript icon, indicating that this package has built-in type declarations

1.2.2 • Public • Published

use-element-size

Track the size of a react-dom element (without ResizeObserver).

Only 540 bytes min+gzip!

Usage

import React from 'react'
import { useElementSize } from 'use-element-size'

const Example = () => {
  const ref = useElementSize((size, prevSize, elem) => {
    console.log({ size, prevSize, elem })
  })
  return (
    <div
      ref={ref}
      style={{
        position: 'relative',
        width: '50%',
        height: '50%',
      }}
    />
  )
}

Quirks

  • ⚠️ Be sure the tracked element never has position: static.

  • The size parameter is null when the tracked element is unmounted.

  • The prevSize parameter is null when the tracked element was just mounted.

  • Tracking stops when useElementSize is passed false/null/undefined instead of a function.

  • The callback waits until the next requestAnimationFrame tick before running.

  • The Size and SizeCallback types are exported for your convenience.

Demo

https://codesandbox.io/s/use-element-size-demo-dszk1?file=/src/index.tsx

Package Sidebar

Install

npm i use-element-size

Weekly Downloads

162

Version

1.2.2

License

MIT

Unpacked Size

14.1 kB

Total Files

9

Last publish

Collaborators

  • aleclarson