You litterally need to pull in so many libraries in order to get a React app off the ground.... Axios, Formik, Yup, a CSS modules lib just to name a few! I wouldn't recommend React for anyone building an app with more than 10 people. Once you go beyond that 10, everyone's opinions start entering into the codebase and you get a hodgepodge of component patterns just littered everywhere.
The funny thing is, a lot of the suggestions made in the OP are things Angular has been doing since day one. In fact, I think React needs to adopt even more of the patterns. For example, lets talk naming conventions. Making a component with /MyWidget/index.tsx is undesirable, make it components/my-widget.component.tsx. Also, stop placing hooks in a generic hooks.ts, use my-widget.hooks.ts.
You don't need formik or yup, to start a react app, for you to talk about axios like that means you don't fully understand what axios does (Axios is a promise based HTTP client for the browser and Node.js. Axios makes it easy to send asynchronous HTTP requests to REST endpoints and perform CRUD operations. It can be used in plain JavaScript or with a library such as Vue or React.).
The only thing important to start a react app with, is a styling library (css modules, styled components, emotion and styled jsx) which is not so complusory and a routing library (react-router).
If your code base is littered because of different people's opinions it's not because of the flexibility of React (which I enjoy).
It's because you have not established rules in your team guiding how the codebase should be
I've used Vue and RiotJS also - and they're soooo much nicer to work with - totally intuitive, especially RiotJS which just feels like a natural extension to vanilla HTML/JS
Agreed jsx does feel like php, but it is so quick to prototype and provides so much better project structure as compared to angular where you need to create html + js + cs, uuh so many files to work with.
I have no experience with vuejs, would to recommend to learn it ?
@dhruvindsddev
In Angular you can have your HTML+TS+CSS all in one file. :)
When I open a React component I typically see 100+ lines of just hooks and startup code before getting to something interesting. When you finally make your way to the return sending back some JSX, the block is littered with different styles and opinions on how to structure, which makes it difficult to parse if it's not the style you're used to.
Lucky you, I'm hating it more by the day 🤮
It's so messy, it feels old
Wait until you try angular
You litterally need to pull in so many libraries in order to get a React app off the ground.... Axios, Formik, Yup, a CSS modules lib just to name a few! I wouldn't recommend React for anyone building an app with more than 10 people. Once you go beyond that 10, everyone's opinions start entering into the codebase and you get a hodgepodge of component patterns just littered everywhere.
The funny thing is, a lot of the suggestions made in the OP are things Angular has been doing since day one. In fact, I think React needs to adopt even more of the patterns. For example, lets talk naming conventions. Making a component with
/MyWidget/index.tsx
is undesirable, make itcomponents/my-widget.component.tsx
. Also, stop placing hooks in a generichooks.ts
, usemy-widget.hooks.ts
.You don't need formik or yup, to start a react app, for you to talk about axios like that means you don't fully understand what axios does (Axios is a promise based HTTP client for the browser and Node.js. Axios makes it easy to send asynchronous HTTP requests to REST endpoints and perform CRUD operations. It can be used in plain JavaScript or with a library such as Vue or React.).
The only thing important to start a react app with, is a styling library (css modules, styled components, emotion and styled jsx) which is not so complusory and a routing library (react-router).
If your code base is littered because of different people's opinions it's not because of the flexibility of React (which I enjoy).
It's because you have not established rules in your team guiding how the codebase should be
Why hate?
Principally - JSX... It's a total abomination. Like being back in the bad old days of PHP all over again
Also, the hooks stuff... feels like an ugly hack to patch over bad design
I've used Vue and RiotJS also - and they're soooo much nicer to work with - totally intuitive, especially RiotJS which just feels like a natural extension to vanilla HTML/JS
Agree.. Angular (modern) is also amazing.
Built in native support for Observables and Typescript is just amazing.
Agreed jsx does feel like php, but it is so quick to prototype and provides so much better project structure as compared to angular where you need to create html + js + cs, uuh so many files to work with.
I have no experience with vuejs, would to recommend to learn it ?
ps, by project structure I mean the flexibility to add anything anywhere, there are no strict rules to follow.
Yes, and people frequently do follow no rules... leading to the kind of trash I used to see in PHP that I hoped I'd never see again
Great for freelancing, nightmare for bigger companies
@dhruvindsddev In Angular you can have your HTML+TS+CSS all in one file. :)
When I open a React component I typically see 100+ lines of just hooks and startup code before getting to something interesting. When you finally make your way to the return sending back some JSX, the block is littered with different styles and opinions on how to structure, which makes it difficult to parse if it's not the style you're used to.
The same with RiotJS - out of the box