Earlier quoted context omitted.
Hooks are particularly bad to reason about. I can't figure out why hooks seems to be the official Way, it just leads to a bunch of spaghetti functions. The old object-oriented approach might feel old and creaky, but OOP was invented for user interface. Functional programming, not so much.
The why of hooks is actually easy to explain, it's just that nobody does it. A complex UI component will usually contain different aspects A, B and C. Each of these requires hooking into the component lifecycle in various ways. In a class/interface-based system, you have to sprinkle parts of A/B/C around in each of the lifecycle methods. The only way to abstract and contain this is to make ` ` ` ` ` ` subcomponents,…
The problem is react keeps coming up with new leaky abstractions, instead of solid building blocks. Fashion is not a good way to do engineering.