Käyttötarkoitus
Käytä useResizeObserver-hookia kun haluat tarkkailla tietyn HTML-elementin leveyden tai korkeuden muutoksia. Toteutus perustuu ResizeObserveriin(Avautuu uuteen välilehteen).
Hook tarkkailee suorituskykyisesti HTML-elementin koon muuttumista, joten se toimii kaikissa tilanteissa, joissa elementin koko voi muuttua.
Ruudunkoon tarkkailuun voi käyttää useMediaQuery-hookia.
Esimerkit
Muuta ikkunan kokoa siten, että laatikon koko muuttuu tai zoomaa sisältöä niin arvot päivittyvät.
Elementin korkeuden tai leveyden muutosten seuraaminen
function ResizeObserverExample() {
const ref = useRef<HTMLDivElement>(null);
const { height, width } = useResizeObserver(ref);
return (
<div ref={ref}>
<Box variant="primary" m={0}>
Elementin korkeus on: <strong>{height} px</strong>
<br />
Elementin leveys on: <strong>{width} px</strong>
</Box>
</div>
);
}
Funktion kutsuminen elementin korkeuden tai leveyden muuttuessa
Koon muuttuessa voidaan kutsua myös parametrina annettavaa onResize-funktiota.
function ResizeObserverExample() {
const ref = useRef<HTMLDivElement>(null);
const [size, setSize] = useState({ height: 0, width: 0 });
const onResize = ({ height, width }) => {
setSize({ height, width });
};
useResizeObserver(ref, { onResize });
return (
<div ref={ref}>
<Box variant="primary" m={0}>
Elementin korkeus on: <strong>{size.height} px</strong>
<br />
Elementin leveys on: <strong>{size.width} px</strong>
</Box>
</div>
);
}
Huomioitavaa selaintuessa