The world of development is very fast-paced and constantly changing. So, in order to maintain a professional level and grow in the field, it is important to be aware of the latest developments.
Recently, a new version of the documentation for React was released, and I couldn't ignore the news. Therefore, I decided not to waste time and get to know it in detail.
As a beginner, I always built my apps using create-react-app and never thought about other tools to start a project. That's why it was interesting to learn that the updated documentation no longer recommends using CRA but instead recommends using one of the popular React frameworks. This actually blew me away!
First on the list of frameworks was Next.js. Its main feature is the possibility of pre-rendering. Next.js allows full server-side rendering (SSR) and static page generation (SSG), which has a positive effect on application performance. In addition, server-side rendering allows for SEO benefits (if you use semantics, of course), which is an important factor. These advantages quickly caught my attention, and I decided to try working with Next.js. And I liked it! It is also worth noting that Next.js has very conveniently organized routing. However, it is immediately clear that the framework is large, and a significant period of time must be allocated for its full study.
Remix is another web application development framework based on React. As the official documentation says, "Remix has a cheat code: nested routing." As far as I understand, all the advantages of the framework are built around it. Also, like Next.js, it provides server-side rendering (which is an interesting trend).
Gatsby is the third proposed React framework. It provides a powerful set of tools to quickly develop static sites with high performance. Gatsby uses the concept of "pre-rendering" to generate HTML pages before they are requested, allowing for fast loading times.
So, we can see that frameworks are very useful and offer interesting possibilities. But are they necessary for a beginner like me and thousands of other beginners? If so, which of these frameworks should I choose? It all depends on your needs and the goal of the project.
Personally, I am inclined to the fact that it is worth spending more time on a deeper study of existing knowledge because it is better to know one field of activity well than superficially ten. But what do you think, dear reader?
I've now tested Vite instead of CRA, and I can definitely say that it has made a big difference in speed and performance - for the better. In any case, no one forbids experimenting! Build projects, actively study documentation and examples to expand your development skills, and find the most suitable tool.
P.S.: Everything written is purely my own thoughts, so if there are any inaccuracies, please edit them in the comments. :)