Also I don’t understand why everyone is building with and hiring for react.
Its main selling point is that it is "just a library, not a framework" which I also find to be its biggest disadvantage. When I build an application and I choose SPA, I want a framework, not a loose collection of libs.
It’s a little like Django vs Flask. Sure Flask has less overhead but if I know what I am doing I can do 4 times as much with a framework like django in the same time, given that I know what it can do for me. Because I don’t spend time (more or less consciously) reinventing the wheel
I admit that Angular adds some overhead if you have not worked with modules and observables, but it does give you a complete toolset to build very scalable frontends.
And once you dive into ngrx and its ecosystem it becomes clear that Angular has quite some upsides, especially for enterprise software.
There is a reason why NestJS adopted a lot of Angulars patterns such as modules and services. They make the code so much cleaner when used properly.
Build the app in such a way that you can change it. Or just use react-router.
> wether we should write class-based or functional components
Functional
> Or wether to use dispatchToProps or hooks.
Hooks.
But I see what you mean, React's idiomatic patterns do change. Thing is, if you have a class based component you can still use it in amongst your functional hook-based ones. It's still compatible.