2019-11-20
1829
#react
Ohans Emmanuel
10093
Nov 20, 2019 ⋅ 6 min read

How is getSnapshotBeforeUpdate implemented with Hooks?

Ohans Emmanuel Visit me at ohansemmanuel.com to learn more about what I do!

Recent posts:

ai dev tool power rankings

AI dev tool power rankings & comparison [March 2026]

Compare the top AI development tools and models of March 2026. View updated rankings, feature breakdowns, and find the best fit for you.

Chizaram Ken
Mar 12, 2026 ⋅ 10 min read
the replay march 11

The Replay (3/11/26): Eng knowledge gaps, OpenClaw, and more

Discover what’s new in The Replay, LogRocket’s newsletter for dev and engineering leaders, in the March 11th issue.

Matt MacCormack
Mar 11, 2026 ⋅ 26 sec read
ai training alexandra spalato

Your engineering team’s AI training is probably failing: How to fix it

Buying AI tools isn’t enough. Engineering teams need AI literacy programs to unlock real productivity gains and avoid uneven adoption.

Alexandra Spalato
Mar 11, 2026 ⋅ 4 min read
5 Reasons your AI app fails in production (And how to fix it)

5 reasons your AI app fails in production (and how to fix it)

If your AI app or agent works perfectly in development but falls apart in production, you’re not alone. In a […]

Elijah Asaolu
Mar 10, 2026 ⋅ 8 min read
View all posts

2 Replies to "How is getSnapshotBeforeUpdate implemented with Hooks?"

  1. Hey, nice article! I noticed that `useLayoutEffect` did not work for you as it really happens right *after* DOM rendering. The regular `useEffect` is even more delayed — it happens in the next animation frame after rendering.

    What you could do was to make your snapshot right in the component function body. This is what actually gets called before DOM manipulations. You already have your new state/props and you can use refs to get previous ones.

  2. This article, however nicely marked-up it is, is actually useless because `useLayoutEffect` is called right *after* DOM rendering, not before it.

Leave a Reply

Your email address will not be published. Required fields are marked *

Would you be interested in joining LogRocket's developer community?

Join LogRocket’s Content Advisory Board. You’ll help inform the type of content we create and get access to exclusive meetups, social accreditation, and swag.

Sign up now