That's the paradigm of single-page apps (SPAs). Rather than the traditional client/server model where the server renders the page and sends it back to you, SPAs do all the rendering on the client-side, and simply pass data back and forth between the server using APIs. It's (in my opinion) a superior model for apps, but has a lot of disadvantage that make it unsuitable for websites—mainly that SPAs take longer to load initially and don't work without JS enabled (which also includes search engine crawlers).
Having said that, it's entirely possible (though not easy) to have your React app work without JS enabled by rendering it on the server before sending the page to the client. This way, you get the best of both worlds, but it's a lot of work to implement this properly for a remotely complex app. The answer in the short-term is that you shouldn't be using a "fancy framework" for anything for which the above disadvantages are a deal-breaker (like most public sites) until the server-rendering story matures and becomes more compelling.