React is not overly opinionated – it offers a lot of different ways to achieve the same task. It can be a single page application so you can do transitions between pages, or you can build a more sophisticated front end. Users have full control of the virtual DOM, which is then rendered to the browser as a regular web page to make your application more SEO-friendly.
While this provides flexibility, initial infrastructure setup can then take a lot of time and expertise because there are many decisions to be made. Built the right way, many components can be shared between React and React Native to cut down on development time, which is especially useful for mobile applications.
With React, you can choose from multiple storage setups — ranging from lightweight to comprehensive — on a per-project basis to maintain page speed. Some people like the simplicity and ease of using these setups, while others feel limited by not being able to customize their own storage configuration.