What is rc-resize-observer?
The rc-resize-observer npm package is a React component that allows you to monitor and respond to changes in the size of a DOM element. It leverages the ResizeObserver API to provide a simple and efficient way to perform actions based on element or viewport resizing. This can be particularly useful in responsive design, where you might need to adjust layout or content based on the available space.
What are rc-resize-observer's main functionalities?
Observing size changes
This feature allows you to wrap any component or element with the ResizeObserver component. It will then call the provided `onResize` callback whenever the size of the wrapped element changes, passing an object containing the new size information.
import ResizeObserver from 'rc-resize-observer';
function MyComponent() {
return (
<ResizeObserver
onResize={(sizeInfo) => {
console.log('New size:', sizeInfo);
}}
>
<div>Resize me!</div>
</ResizeObserver>
);
}
Other packages similar to rc-resize-observer
resize-observer-polyfill
This package provides a polyfill for the ResizeObserver API, which is the underlying technology used by rc-resize-observer. While not a React-specific solution, it can be used in React projects to achieve similar functionality by manually attaching and managing observers in component lifecycle methods.
react-resize-detector
react-resize-detector is another React component designed to listen for element size changes. It offers a similar API to rc-resize-observer but includes additional features such as the ability to specify a specific element to observe via a ref, and the option to throttle or debounce the resize events to improve performance.
rc-resize-observer
Resize observer for React.
Live Demo
https://react-component.github.io/resize-observer/
Install
Usage
import ResizeObserver from 'rc-resize-observer';
import { render } from 'react-dom';
render(
<ResizeObserver
onResize={() => {
console.log('resized!');
}}
>
<textarea />
</ResizeObserver>,
mountNode,
);
API
Property | Type | Default | Description |
---|
disabled | boolean | false | |
onResize | ({ width, height }) => void | - | Trigger when child node resized |
Development
npm install
npm start
License
rc-resize-observer is released under the MIT license.