Memoize Components
Loading "Memoize Components"
Run locally for transcripts
π¦ Memoizing elements is such a common idea that React has a built-in optimizer
called
memo
which allows you to memoize an entire component based on its
props:import { memo } from 'react'
const MyComponent = memo(function MyComponent(props) {
/* only rerenders if props change */
})
This effectively turns the
props
object into a dependency array a la useMemo
and applys wherever the component is rendered.π§ββοΈ I've moved the
Footer
out of useMemo
so
we've got it rendering unnecessarily again.π¨βπΌ You're going to use
memo
to get the Footer
back into a position where
it only renders when the name
or color
change. Good luck!The tests rely on the name of your memoized component being
FooterImpl
, like this:const Footer = memo(function FooterImpl(props) {
// ...
})
If you name it differently, the tests will fail.