Stop UI flickering caused by unnecessary re-renders. Learn how function identity and referential equality keep your app fast by stabilizing props.

React uses referential equality to decide if a component should re-render; if you define a function inside a component body, JavaScript creates a brand-new spot in memory for it every time, signaling to React that the prop has changed even if the logic is identical.
Explain useCallback and why function identity matters when passing handlers to children. Use EpisodeCard onPlay example. Keep it conceptual.


Criado por ex-alunos da Universidade de Columbia em San Francisco
"Instead of endless scrolling, I just hit play on BeFreed. It saves me so much time."
"I never knew where to start with nonfiction—BeFreed’s book lists turned into podcasts gave me a clear path."
"Perfect balance between learning and entertainment. Finished ‘Thinking, Fast and Slow’ on my commute this week."
"Crazy how much I learned while walking the dog. BeFreed = small habits → big gains."
"Reading used to feel like a chore. Now it’s just part of my lifestyle."
"Feels effortless compared to reading. I’ve finished 6 books this month already."
"BeFreed turned my guilty doomscrolling into something that feels productive and inspiring."
"BeFreed turned my commute into learning time. 20-min podcasts are perfect for finishing books I never had time for."
"BeFreed replaced my podcast queue. Imagine Spotify for books — that’s it. 🙌"
"It is great for me to learn something from the book without reading it."
"The themed book list podcasts help me connect ideas across authors—like a guided audio journey."
"Makes me feel smarter every time before going to work"
Criado por ex-alunos da Universidade de Columbia em San Francisco

Lena: Jackson, have you ever had that frustrating moment where you’re building something simple, like a music app, and the UI just starts... flickering? You’ve got these EpisodeCards for your podcast, and every time you click a "Like" button, the "Play" button on every other card flashes like it’s re-rendering from scratch.
Jackson: Oh, the classic "unnecessary re-render" trap. It’s actually a huge issue—some reports show that these wasted cycles can eat up an average of 34% of an app's CPU power.
Lena: That is a massive hit for something that looks identical! I mean, if the "Play" handler logic hasn't changed, why does React think the prop is different?
Jackson: It comes down to "function identity." Think of it like a business card. Even if the person and the job title are exactly the same, if you hand out a brand-new, physically different card every single time you speak, React sees that new "reference" and assumes everything has changed.
Lena: So even if the code inside the function is a carbon copy, React sees a new "card" and triggers a full re-render. Let’s explore how we can use useCallback to finally give these functions a stable identity.