scrimba
Advanced React
Performance
React.memo() - reducing rerenders
Go Pro!Bootcamp

Bootcamp

Study group

Collaborate with peers in your dedicated #study-group channel.

Code reviews

Submit projects for review using the /review command in your #code-reviews channel

React.memo() - reducing rerenders
AboutCommentsNotes
React.memo() - reducing rerenders
Expand for more info
App.jsx
run
preview
console
import React from "react"
import GrandParent from "./GrandParent"

export default function App() {
const [count, setCount] = React.useState(0)

function increment() {
setCount(prevCount => prevCount + 1)
}

function decrement() {
setCount(prevCount => prevCount - 1)
}

console.log("[GP] [P] [C] [GC] APP just rendered")
return (
<div>
<button onClick={decrement}>-</button>
<button onClick={increment}>+</button>
<h2>Count: {count}</h2>
<p>App component</p>
<GrandParent />
<GrandParent />
</div>
)
}
Console
"[GP] [P] [C] [GC] APP just rendered"
,
"[👴🏼] [ ] [ ] [ ] rendered"
,
"[ ] [👩🏼‍⚕️] [ ] [ ] rendered"
,
"[ ] [ ] [🧒🏻] [ ] rendered"
,
"[ ] [ ] [ ] [👶🏻] rendered"
,
"[ ] [ ] [ ] [👶🏻] rendered"
,
"[ ] [ ] [🧒🏻] [ ] rendered"
,
"[ ] [ ] [ ] [👶🏻] rendered"
,
"[ ] [ ] [ ] [👶🏻] rendered"
,
"[ ] [👩🏼‍⚕️] [ ] [ ] rendered"
,
"[ ] [ ] [🧒🏻] [ ] rendered"
,
"[ ] [ ] [ ] [👶🏻] rendered"
,
"[ ] [ ] [ ] [👶🏻] rendered"
,
"[ ] [ ] [🧒🏻] [ ] rendered"
,
"[ ] [ ] [ ] [👶🏻] rendered"
,
"[ ] [ ] [ ] [👶🏻] rendered"
,
"[👴🏼] [ ] [ ] [ ] rendered"
,
"[ ] [👩🏼‍⚕️] [ ] [ ] rendered"
,
"[ ] [ ] [🧒🏻] [ ] rendered"
,
"[ ] [ ] [ ] [👶🏻] rendered"
,
"[ ] [ ] [ ] [👶🏻] rendered"
,
"[ ] [ ] [🧒🏻] [ ] rendered"
,
"[ ] [ ] [ ] [👶🏻] rendered"
,
"[ ] [ ] [ ] [👶🏻] rendered"
,
"[ ] [👩🏼‍⚕️] [ ] [ ] rendered"
,
"[ ] [ ] [🧒🏻] [ ] rendered"
,
"[ ] [ ] [ ] [👶🏻] rendered"
,
"[ ] [ ] [ ] [👶🏻] rendered"
,
"[ ] [ ] [🧒🏻] [ ] rendered"
,
"[ ] [ ] [ ] [👶🏻] rendered"
,
"[ ] [ ] [ ] [👶🏻] rendered"
,
/index.html
-9:02