If you create a single-page application you can use react-router for client-side rendering only. On your server side, you would create a wildcard route like app.get("/*", (req, res, next) => { res.status(301).redirect("/"); }) to catch any requests and redirect them back to your root path. Then you can have navigation using Link to="/yourRoute" and a history like browserHistory and Link to allow users to click links and get to all the views in your app. In order to support direct links where a user types yourWebApp.com/yourRoute, you’ll have to incorporate server-side rendering with react-router. From what I can gather, this is generally a better approach for real-world apps that need to support typed addresses and SEO. When you have both, the app is “isomorphic” and views can be generated from both the client and server sides. Hope this helps!
React-router has a demo where you can check out an implementation https://github.com/ryanflorence/react-router-mega-demo
A popular isomorphic boilerplate with React https://github.com/kriasoft/react-starter-kit