React is undoubtedly the most popular and widely used framework right now. Some of the biggest brands use React for their apps and imagining these massive apps structuring their apps in which is both easy to maintain and scale is pretty amazing. In case of structuring your react app, the ultimate structure is one where you can freely move around the code without putting in too much effort.
If you use React for developing an app, and if you have added Redux to it, chances are that you are going to end up creating way too many files and folders. When it comes to scaling these large applications with so many files and folders, it seems almost next to impossible. But both Redux and React have ways of structuring that applications but there is no proper guide on it. But React recommends several ways of grouping them.
We invite you to read again our article. Building a Budget for a React JS Application. Let’s take a look at these points.
You can easily group your application using the file type. This can help you in easy navigation of your apps. The proper way to manage myriad files is to group those components into categorical folders based on how they are contributing to the application. React suggests using the Atomic Design here.
The smaller components, which are the atoms can be grouped together to form the molecules, while the molecules can be grouped together to form organisms etc. React suggests creating a maximum four folders with a single application.
Feature or Route
Now let’s say you have an application with two pages, that is, about us and contact us. You will have two folders named About Us and Contact Us. These folders will have the components and style of those particular routes. Now if the About Us page has a certain feature that you want to reuse somewhere else in the application. You can select a section outside the About Us page. So organizing by function happens here and you will also be able to find your files easily.
Redux Recommends Ducks
This is a system that has gained immense popularity as an amazing solution to scale Redux applications. Ducks suggest that actions and action types should be arranged in a way that they can be self-supporting. So you will not have the pain of creating different files within each separate component.
Redux Recommends Rails-Style
In this, Redux suggests you structure your app how it would be structured in Ruby on Rails. There will be a separate folder for components, containers, constants, and actions. Here the application will be structured according to the purpose it serves in the app. The Atomic Design mentioned above can also be used here.
What Do You Think Will Work For You?
A giant file is obviously going to be difficult to navigate. So what if you create bookmarks in that one file and divided all the functions in different bookmarks. But isn’t the whole idea of creating a file is to be able to navigate it more easily? And if that aim is not achieved, what’s the point of that file?
Each application is different in the way it is developed and for what it is going to be used. Each application has its own needs. So even the structuring of our applications should depend on the kind of app that we are developing. What works right now, might not work in another application later. Your solution can be from something mentioned above or it can be a mix of all those points. So figure out the needs of your app and create a solution accordingly.