by Pawan Kumar @jsartisan
Imagine an app that has a component that takes a long time to re-render.
export default function App() {
const [isOpen, setIsOpen] = useState(false);
return (
<>
<VerySlowComponent />
<BunchOfStuff />
<OtherStuffAlsoComplicated />
</>
);
}
export default App;
Now you are required to add a Button that opens a dialog. For that you added button and dialog and a state to manage the dialog.
export default function App() {
const [isOpen, setIsOpen] = useState(false);
return (
<>
<Button onClick={() => setIsOpen(true)}>Open dialog</Button>
{isOpen ? <ModalDialog onClose={() => setIsOpen(false)} /> : null}
<VerySlowComponent />
<BunchOfStuff />
<OtherStuffAlsoComplicated />
</>
);
}
But the problem is with the above code is that because of slow component re-rendering, the dialog takes more than 1 second to open. How can we optimize this?