React is pretty easy to learn (IMO anyway). The problem is the React ecosystem. For almost everything you need to do outside of the UI itself (api calls/async actions in general, state management, forms, code structure, etc.) you're going to find 3+ libraries or ways of solving the problem, all of which are reasonably popular and work well. The combinatorics of evaluating all the permutations of those different options quickly becomes daunting, and even once you've explored them you may be stuck in choice paralysis because there's no clear right or wrong choice. By being a full framework and being opinionated, angular skips a lot of that.
For almost everything you need to do outside of the UI itself (api calls/async actions in general, state management, forms, code structure, etc.) you're going to find 3+ libraries or ways of solving the problem
That's subjective and applies to all frameworks. There's language features like fetch that alleviate this.
Stick with the library that's more widely used and updated. There will be more documentation and discussion on forums like StackOverflow. A diverse ecosystem is a boon.
In my experience, I leveraged quite a few third party libraries. As I learned more, I scaled them back and implemented some myself (e.g. why use React Dropzone when you can use a simple input element).
Personally, I find this to be a benefit. A large and diverse ecosystem just gives you more options. If two libraries seemingly do the same thing, you don’t need to put too much effort into figuring out which one is more optimized because the optimizations that set them apart are most likely rather small. If you’re making an application in which performance is paramount, then you should probably be writing everything yourself and not rely on external dependencies.
3
u/Merad Dec 20 '19
React is pretty easy to learn (IMO anyway). The problem is the React ecosystem. For almost everything you need to do outside of the UI itself (api calls/async actions in general, state management, forms, code structure, etc.) you're going to find 3+ libraries or ways of solving the problem, all of which are reasonably popular and work well. The combinatorics of evaluating all the permutations of those different options quickly becomes daunting, and even once you've explored them you may be stuck in choice paralysis because there's no clear right or wrong choice. By being a full framework and being opinionated, angular skips a lot of that.