hardFrontend

When would you use `useLayoutEffect` instead of `useEffect`?

514 views
01

Understand the problem

This question probes a deeper understanding of React's rendering lifecycle and specific hook behaviors.

hooksuseLayoutEffectuseEffectdom
02

Attempt it yourself

Sketch your approach before reading the solution — that's what interviews test.

Stuck? AI Nudge Available

Get a conceptual hint to guide your logic without spoiling the final implementation.

03

Study the solution

The solution is waiting

Give it an honest attempt first — then compare your thinking with the full walkthrough.

04

Read the code

Measure before paint to avoid flicker
import { useRef, useState, useLayoutEffect } from "react";

export default function App() {
  const boxRef = useRef(null);
  const [width, setWidth] = useState(0);

  useLayoutEffect(() => {
    // measured before the browser paints → no visible jump
    setWidth(boxRef.current.getBoundingClientRect().width);
  }, []);

  return (
    <div style={{ padding: 24, fontFamily: "system-ui" }}>
      <div ref={boxRef} style={{ width: "60%", background: "#def" }}>Resize me</div>
      <p>Measured width: {Math.round(width)}px</p>
    </div>
  );
}
05

Join the discussion

Discussion (0)

Sign in to join the discussion.

No responses yet. Be the first to share what you think.