DEV Community

Discussion on: React Project Architecture

Collapse
 
spock123 profile image
Lars Rye Jeppesen

It's so messy, it feels old

Collapse
 
dhruvindev profile image
Dhruvin

Wait until you try angular

Thread Thread
 
cgatian profile image
Chaz Gatian

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.

Thread Thread
 
cgatian profile image
Chaz Gatian

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.

Thread Thread
 
kachidk profile image
Nwanguma Victor • Edited

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