The return function in useEffect vs. componentWillUnmount is just terrible. This is always a bizarre topic for juniors.
The return function in useEffect vs. componentWillUnmount is just terrible. This is always a bizarre topic for juniors.
I didn’t write many class components beforehand though, so my mental model didn’t have to change all that much.
The ability to subscribe is indeed amazing (this was much more verbose in class components).
just started writing my own named effects (eg useAuth() for encapsulating firebase auth) and still in a bit of an uncanny valley with doing that - but again it's very logical once you get used to it and actually in the end a simpler mental model of component state.
never want to go back.
junior devs, start with useState, it'll all flow from there.
There's just too much magic going on, which is the same thing that makes me reluctant to write Vue or Svelte (after reading this)
https://github.com/streamich/react-use/blob/master/src/useUn...
Compared to an explicit method name it is much less intuitive.
And don't even get me started about the dependencies array, which has different behaviour whether you omit the argument, or pass an empty array, or pass actual `useState` dependencies, or pass other unrelated variables. Again, it's something you just "need to memorize" to use React.
Sometimes I do miss the simplicity of componentDidMount... I guess you can always still write class-based components. Too bad they're not in vogue anymore! Feels like every library is hooks-based these days.
If my company wasn't a React shop, I'd probably be using Vue. I used Vue at my previous company and liked it a lot.
Headless libraries like `react-table` that use hooks are a revelation though. So nice to get pretty much all the behaviour you could ever need, without it making UI decisions for you. Difficult to use at first and wrap your head around, but hoo boy is it great to have the power to fully control the rendering!