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.
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.