It’s taken me a while to get comfortable with the idea of React hooks but the good really does seem to outweigh the bad. Separation & encapsulation of concerns is a big win. And based on what’s there now, everyone will finally have to stop checking component state in their tests.
I’ve recently been building a nontrivial (albeit hobby) project with hooks from scratch, and yes, they do work amazingly well in practice. It’s already at the point where I find it hard to imagine how I’d have done it without them. A few gotchas but it’s almost all upside for me.
Downside: hooks make you think harder & more carefully about the consequences of mutable state, which is great, but a lot of people are confused. That should pass as those ideas become more familiar and we get better at teaching them and/or hiding them in friendlier abstractions.
But for me, right now, they dovetail perfectly with my particular experiences as a programmer and I couldn’t be happier with the (highly compositional, ~purely functional) ways of working they enable. Exciting times.
I’m definitely not clever enough to build something like this with jQuery, and probably not clever enough to do it with class components in React, but with hooks I can do it pretty easily. A true bicycle for the mind.