DEV Community

Discussion on: Why do you still love React?

Collapse
ryannerd profile image
Ryan Jentzsch • Edited on

Having used Angular, AngularJS, Vue, and Ember previously I'd argue React has the lowest learning curve of them all with Vue a very close second.
The component structure of React makes it much easier to reason about than other framework/libraries. Ember also uses a component methodology (but it's not as elegant as React's). The Angular(s) and Vue use directives and not components.
Ember and Angular(s) frameworks are opinionated and favor convention over configuration. Meaning that many parts of these frameworks are built-in such as routing, and directory structure is expected to be done in a certain way.

React on the other hand has more flexibility since you can choose an existing router module or make your own. How you structure the directory for where components, providers, or services is up to you. If you need state management then there are quite a few to choose from ReactN is my favorite. Need a React CSS library there are quite a few to choose from (my preference is React Bootstrap ).
Another benefit to React is hooks which make React much more pure function based (functional) with immutability: making components predictable and perform better.

The cost of this flexibility is with larger projects and/or teams if conventions and standards aren't decided upfront it can turn into a bloated mess really quickly.

Collapse
codingee profile image
Samuel Archibong Author

Nicely said! It seems you've had your hands filled with other javaScript frameworks. I started with Vue.js but because of the way React was overrated and I also want to learn mobile development I couldn't help but fall in love with it haha I remember how much I hated javascript and will "always" prefer python to it but as of today, javascript is my best pal haha

Collapse
ryannerd profile image
Ryan Jentzsch

If Python didn't use white space as a part of structure and logic I'd probably like it more (also add some strict typing as a feature).
JavaScript...well...is a turd, but no choice if you are targeting the web. There are languages that transpile to JS that add a level of sanity to an insane language. I typically use TypeScript but have used Dart and Kotlin as well to transpile to JS. TypeScript is well supported and is usually easier to debug when things go south than other transpiled languages.