What Problems Does React Solve?
React does not set out to solve every problem that you will encounter in user interface design and front-end development. React solves a specific set of problems, and in general, a single problem. As stated by Facebook and Instagram, React builds large-scale user interfaces with data that changes over time.
Large-scale user interfaces with data that changes over time could probably be something that many web developers can relate to in their own work or hobby coding experiences. In the modern web development world, you often offload much of the responsibility of the user interface to the browser and HTML, CSS, and JavaScript. These types of applications are commonly referred to as single page applications, where the common request/response to the server is limited to showcase the power of the browser. This is natural; why would you not do this, since most browsers are capable of doing complex layout and interaction?
The problem arises when your weekend project code is no longer maintainable. You have to “bolt on” extra pieces of code to get the data to bind properly. Sometimes you have to restructure an application because a secondary business requirement has inadvertently broken the way the interface renders a few interactions after the user starts a task. All of this leads to user interfaces that are fragile, highly interconnected, and not easily maintainable. These are all problems that React attempts to solve.