Great question!
Here are my thoughts. I'm seeing two possible approaches.
(1) Create SPA with React and Wordpress
In that case the Wordpress will act as REST API and Administration. React will be responsible for the routes management and handling all Front end logic. You can think about it as two different projects. Therefore you will have two clean installs of React and Wordpress.
Pros:
- Таке full advantage of React and its shine ecosystem. Here I mean performance, scalability, community and so on.
- Back end, REST API, Administration are up to you, thanks by Wordpress.
Cons:
- You can't use Wordpress's plugins on the Front end side.
Please take a look at WP-Calypso for inspiration. You can take some good practices from there:
Calypso is the new WordPress.com front-end – a beautiful redesign of the WordPress dashboard using a single-page web application, powered by the WordPress.com REST API
(2) Using Wordpress platform in its default fashion
You can include React in the default Wordpress way of including js libraries. Here React will handle some heavy user interaction on any page you want. React can communicate again with the Wordpress REST API, but the routes will be managed by Wordpress.
What approach should I use?
It depends. Let's look at the next two cases:
We have a betting platform and we want our users to receive live updates on coefficient and scores changes. We assume that Wordpress Back end structure can handle it and perfectly fits to our requirements. In that scenario I would prefer to create SPA and using Wordpress as Back end and Administration (#1 approach).
We have a company site with almost static content. The only one dynamic (heavy interactions) feature is the user board. There the users can send messages to others ones, receive newsletter feeds. So here I would prefer using the Wordpress as main platform (#2 approach), while React would handle only the dynamic page.