Introduction
React is a declarative framework. This means instead of describing what you need to change to get to the next state (which ...
For further actions, you may consider blocking this person and/or reporting abuse
you should use functional update when the new value is referencing the old one
That's react basic
Not really. As a newcomer reading the docs, you find an example where
setCount(count + 1)
is used instead of a callback: reactjs.org/docs/hooks-state.html#.... Even though the API Reference indeed recommends using a callback, it's not very clear why.It's mostly for when the value updates extremely fast. That way even when 2 rerenders get batched together the value stays correct. I figured it wouldn't really matter for my example tho
That's what I meant to say
When I was a junior react developer, I always told to use callback whenever the new value is referencing the old one.
And indeed, doing simple setState it doesn't matter
But as the app grows, there are 2 cases that may cause the setState incorrect
But I still tend to use callback whenever possible, because it's hard to justify when is okay to use the value straight away when the code is complex
Also when you are doing a large refactor, you can't rethink to make sure every single setState is safe
After the release of React hooks, I see more ppl write code that has a lot of side effect, useEffect everywhere, thus I think its more important to enforce this rule, otherwise ppl may fix a lot of silly bugs
Completely agree. In fact, in a function component the callback setup would also not help and the callbacks should be defined using a
useCallback
.Thanks, Jesco for the amazing article. After reading this article I realize that in our company application we've so many duplicate states. I'll try to minimize the use of states.
Excellent article
👏🏻👏🏻👍🏻
thank you! my react code renders often. guess there's much room for improvement!
This was a fantastic article.
Great article 🌞. I was with one of svelte maintainers a while back. Great framework. Lots of potential.
💪👍👏🤙